Jak zaimportować qgis.core do aplikacji Python?

11

Jestem nowy w Pythonie. Chcę utworzyć aplikację GIS za pomocą Pythona za pomocą biblioteki QGIS w 64-bitowym systemie Windows 7.

Sposób w jaki to robię:

zainstaluj QGIS 1.7.0

  • Ustawiam PYTHONPATH = D: \ Program Files (x86) \ Quantum GIS Wrocław \ apps \ qgis \ python
  • Uruchamiam python z cmd w D: \ Program Files (x86) \ Quantum GIS Wrocław \ bin
  • Piszę import qgis.core, pojawi się wyskakujące okno z tekstem

Program nie może zostać uruchomiony, ponieważ w komputerze brakuje pliku qgis_core.dll. Spróbuj ponownie zainstalować program, aby rozwiązać ten problem

a tekst w cmd to

ImportError: ładowanie DLL nie powiodło się: nie można znaleźć określonego modułu.

Czy ktoś może mi pomóc?

newToAndroid
źródło

Odpowiedzi:

5

Musisz zweryfikować dwie rzeczy:

PYTHONPATH

PYTHONPATH jest ustawiony dla uruchamianego cmd. Oznacza to, że musisz ustawić go globalnie w swoim systemie

Przejdź do Panelu sterowania -> System-> Zaawansowane.

Kliknij przycisk „Zmienne środowiskowe”.

W wyświetlonym panelu „Zmienne systemowe” kliknij Nowy i wpisz PYTHONPATH w polu „Nazwa zmiennej”. W polu „Wartość zmiennej” wprowadź ścieżkę do QGIS.

Lub możesz ustawić go bezpośrednio w wierszu polecenia cmd tuż przed uruchomieniem interpretera Pythona za pomocą:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

ŚCIEŻKA

Biblioteka DLL, która będzie używana przez moduł python qgis, musi znajdować się na twojej ścieżce. Tak jak ustawiłeś PYTHONPATH powyżej, ustaw zmienną środowiskową PATH, tak aby zawierała katalog, w którym znajduje się qgis_core.dll.

Katalog do dodania to prawdopodobnie D: \ Program Files (x86) \ Quantum GIS Wrocław \ apps \ qgis Ale sprawdź, czy qgis_core.dll naprawdę tam jest.

OSGEO4W

Jak sugerowano w innej odpowiedzi, OSGEO4W instaluje i konfiguruje wszystko za Ciebie. Zainstaluje jednak innego Pythona, co może komplikować sytuację, gdy chcesz zainstalować moduły Pythona innych firm, niedostępne w OSGEO4W.

Równie dobrze otrzymasz najnowszą wersję QGIS, czyli 1.7.4 (wkrótce 1.8).

Vincent
źródło
1
Powinieneś zatem zaakceptować moją odpowiedź: meta.stackexchange.com/questions/5234/…
Vincent
1

Jeśli chcesz utworzyć samodzielną aplikację, powinieneś użyć kopii qgis.bat w% OSGEO4W_ROOT% \ bin jako szablonu i zastąpić wywołanie qgis wywołaniem python (lub pythonw ze skryptem aplikacji). Będziesz wtedy miał pytona działającego w środowisku podobnym do QGIS.

Innymi słowy: kopiowanie qgis.batw D:\Program Files (x86)\Quantum GIS Wroclaw\bincelu myqgisapp.bati zastąpić ostatni wiersz w egzemplarzu

uruchom „Quantum GIS” / B ”% OSGEO4W_ROOT%” \ apps \ qgis \ bin \ qgis.exe% *

z

uruchom „My Quantum GIS App” / B „% OSGEO4W_ROOT%” \ apps \ qgis \ bin \ pythonw.exe L: \ path \ to \ your \ python \ app.py

Uwaga: pythonw.exenie otworzy osobnego okna tekstowego, ale printnie będzie działać (jeśli potrzebujesz, użyj python.exe).

jef
źródło
Dzięki. Ale możesz mi pokazać jakiś krok? Jestem taki zdezorientowany
newToAndroid
Nie mam 15 reputacji, aby głosować na twoją odpowiedź. Mimo wszystko dziekuję. : D
newToAndroid
0

Oprócz odpowiedzi Vincenta (którą uważam za poprawną) należy zauważyć, że ścieżka do qgis_core.dll w zmiennej środowiskowej PATH powinna znajdować się na pierwszym miejscu na liście.

Zanim się tego dowiedziałem, utknąłem z opisanym problemem w instalacji QGIS 2.0.1 OSGeo4W.

Jan Šimbera
źródło