Jak uzyskać dostęp do modułu QGIS z mojego virtualenv

12

Korzystam z systemu Ubuntu 14.4 i zainstalowałem środowisko wirtualne Python. Potem zainstalowałem kilka bibliotek Pythona (gdal, lxml, psycopg2 itp.)

Również w moim systemie mam moduł QGIS. Kiedy więc wpisuję python, mogę zaimportować ten moduł jako:

import qgis.core

Ale kiedy próbuję zrobić to samo za pośrednictwem virtualenv, pojawia się błąd: moduł nie został znaleziony.

Kiedy utworzyłem virtualenv, zrobiłem z opcją:

virtualenv --no-site-packages env

Co ogranicza moją env z env systemu. Pytanie brzmi: jak uzyskać dostęp do modułu QGIS w moim virtualenv?

użytkownik1919
źródło
1
To może pomóc. Jeszcze sam tego nie próbowałem.
Nate Wanner,
1
To może również pomóc. Sam tego nie próbowałem.
Matthias Kuhn

Odpowiedzi:

1

Po utworzeniu i aktywacji virtualenv:

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

Musisz zdefiniować zmienną środowiskową PYTHONPATH do ścieżki instalacji Pythona w QGIS.

zmień [qgispath] na ścieżkę qgis:

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

konieczne będzie również ustawienie LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/[qgispath]/lib

aby zapobiec temu błędowi

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

Twoja ścieżka python jest ustawiona tylko dla virtualenv i dla twojej sesji. Jeśli chcesz ustawić to automatycznie w ramach tego virtualenv, możesz utworzyć plik env/lib/python2.7/site-packagesz plikiem pth.

Najwygodniejszym sposobem jest dodanie pliku konfiguracji ścieżki do katalogu, który już znajduje się na ścieżce Pythona, zwykle do katalogu ... / site-packages /. Pliki konfiguracji ścieżki mają rozszerzenie .pth, a każda linia musi zawierać jedną ścieżkę, która zostanie dołączona do sys.path. (Ponieważ nowe ścieżki są dołączane do sys.path, moduły w dodanych katalogach nie zastąpią standardowych modułów. Oznacza to, że nie można użyć tego mechanizmu do instalowania stałych wersji standardowych modułów.) Source

aby utworzyć i wypełnić plik, użyj następującego polecenia:

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

Znalezione w książce kucharskiej Python Qgis i pokrewnym zestawie odpowiedzi ścieżka pythonpath

Hugo Roussaffa - GeoDatup
źródło