Próbuję napisać samodzielny skrypt Pythona w systemie Windows 7, który używa qgis.core i różnych innych bibliotek qgis.
Znalazłem tutaj stare pytanie na ten temat: Pisanie samodzielnych skryptów Python przy użyciu PyQGIS? i postępował zgodnie ze swoją radą, korzystając z przewodnika tutaj: http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications
Kod sugeruje, że jest:
set PYTHONPATH=c:\qgispath\python
śledzony przez:
set PATH=C:\qgispath;%PATH%
Odkryłem, że IDLE nie podobało się „ustawienie na początku”, więc mój kod wygląda następująco:
PYTHONPATH="C:\OSGeo4W64\apps\qgis\python"
PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
import qgis.core
i dostaję:
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
Wypróbowałem wszystkie warianty ścieżek, które mogę wymyślić, w tym usunięcie;% PATH% "na końcu (to wygląda na zbyteczne), ale nie byłem w stanie znaleźć więcej informacji. Czy ktoś ma jakieś pomysły, gdzie mógłbym być idzie źle?
EDYTOWAĆ:
Po obejrzeniu komentarza Luigiego Pirelli próbowałem teraz:
>>> PYTHONPATH="C:/OSGEO4~1/apps/qgis/./python\qgis"
>>> import qgis.core
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
>>> import qgis.core
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:/OSGEO4~1/apps/qgis/./python\qgis\core;%PATH%"
>>> import qgis.core
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
>>>
Odpowiedzi:
Jeśli zainstalowałeś QGIS za pośrednictwem OSGeo4W, sugeruję, abyś postępował zgodnie z tym tokiem pracy (właśnie przetestowałem go w systemie Windows 7):
Otwórz powłokę OSGeo4W .
Start->All programs->OSGeo4W->OSGeo4W Shell
.Ustaw zmienne środowiskowe . Mój preferowany sposób to wykonanie tego pliku nietoperza (zaktualizowanego 2016.11.03: ten plik nietoperza ) z powłoki OSGeo4W. Jak widać, plik ustawia zmienne środowiskowe w następujący sposób:
Oczywiście musisz sam sprawdzić, czy te ścieżki istnieją w twoim systemie operacyjnym i dostosować je w razie potrzeby.
Pobierz plik .bat i uruchom go, uzyskując do niego dostęp z powłoki OSGeo4W i naciskając ENTER.
Zaimportuj biblioteki PyQGIS za pomocą jednej z następujących metod:
za. Wprowadź interpreter języka Python. Uruchom
python
w powłoce OSGeo4W i ręcznie importuj biblioteki.b. Uruchom skrypt w języku Python. Uruchom
python my_pyqgis_script.py
w powłoce OSGeo4W. Zacznę od bardzo prostego .Przebieg pracy został opublikowany (po hiszpańsku) kilka lat temu w GeoTux i nadal działa. Jak widać, nie uwzględniam zmiennych środowiskowych w skrypcie Python, ale ustawiam je w powłoce OSGeo4W.
źródło
C:\dllo
) i uruchamiasz plik .bat, pisząc nazwę pliku i naciskając Enter.Właśnie zmagałem się z podobnym problemem i zauważyłem plik wsadowy w folderze OSGeo4W \ bin o nazwie python-qgis.bat . Jest to część instalacji QGIS 2.18.15 x64 opartej na pakiecie OSGeo4W na Windows 10.
Po uruchomieniu ten plik wsadowy otwiera interpreter języka Python.
import qgis
pomyślnie działa od wewnątrz.Ten plik wsadowy zawiera wiersz (jak zauważył Germán Carrillo w swojej oryginalnej odpowiedzi):
set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%PYTHONPATH%
tuż przed uruchomieniem interpretera Pythona.
źródło