Как получить доступ к модулю QGIS из моего virtualenv

11

Я использую Ubuntu 14.4, и я установил виртуальную среду Python. Затем я установил несколько библиотек Python (gdal, lxml, psycopg2 и т. Д.).

Также в моей системе у меня есть модуль для QGIS. Поэтому, когда я набираю python, я могу импортировать этот модуль как:

import qgis.core

Но когда я пытаюсь сделать то же самое с помощью virtualenv, я получаю сообщение об ошибке: модуль не найден.

Когда я создал virtualenv, я сделал с опцией:

virtualenv --no-site-packages env

Что ограничивает мой env от env системы. Вопрос в том, как получить доступ к модулю QGIS в моем virtualenv?

user1919
источник
1
Это может помочь. Сам пока не пробовал.
Нейт Уоннер
1
Это также может помочь. Сам не пробовал.
Матиас Кун

Ответы:

1

После создания и активации вашего virtualenv:

virtualenv --no-site-packages env
source env/bin/activate
pip install [your libs]

Вы должны определить переменную окружения PYTHONPATH для пути установки вашего Python в QGIS.

пожалуйста, измените [qgispath] на путь вашего qgis:

export PYTHONPATH=/[qgispath]/share/qgis/python

также необходимо установить LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/[qgispath]/lib

чтобы предотвратить эту ошибку

>>> import qgis.core
ImportError: libqgis_core.so.1.5.0: cannot open shared object file: No such file or directory

Ваш pythonpath установлен только для virtualenv и для вашего сеанса. Если вы хотите установить его автоматически под этим virtualenv, вы можете создать файл env/lib/python2.7/site-packagesс файлом .pth.

Наиболее удобный способ - добавить файл конфигурации пути в каталог, который уже находится на пути Python, обычно в каталог ... / site-packages /. Файлы конфигурации пути имеют расширение .pth, и каждая строка должна содержать один путь, который будет добавлен в sys.path. (Поскольку новые пути добавляются в sys.path, модули в добавленных каталогах не будут переопределять стандартные модули. Это означает, что вы не можете использовать этот механизм для установки фиксированных версий стандартных модулей.) Source

чтобы создать и заполнить файл, используйте такую ​​команду:

cat > [yourVirtualEnv]/lib/python2.7/site-packages/qgispythonpath.pth << /[qgispath]/share/qgis/python

Найдена в Python Qgis cookbook и соответствующем наборе ответов pythonpath

Уго Руссаффа - GeoDatup
источник