Link QGIS do Anaconda Python Distribution: Spyder, iPython Notebook, pip, scikit-learn


20

Mam Anacondę jako moją główną dystrybucję Pythona i chcę przez nią kierować skrypty QGIS związane z Pythonem. Korzystając z Anacondy, mam Spyder, mogę łatwo instalować pakiety za pomocą pipa i mogę uruchamiać przeglądarkę internetową iPython Notebook zarówno do udostępniania ekranu, jak i do przechowywania kodu, który zamierzam wykonać na moich danych przed, podczas i po manipulacjach w QGIS (który wymaga pakiety takie jak scikit-learn).

Nigdzie nie mogę znaleźć żadnego przydatnego sposobu na połączenie tych dwóch.

Korzystam z systemu Windows 8.1, ale jeśli można to zrobić tylko w systemie Linux, mogę spróbować skonfigurować go na pulpicie, na którym działa Mint 13. Muszę tylko mieć kamerę internetową i mikrofon, które można znaleźć na moim laptopie, ale nie w tej chwili na interaktywne demo i wywiad na wtorek.


2
W systemie Windows, jeśli używasz OSGeo4W jako instalatora, musisz kontynuować korzystanie z jego instalacji w języku Python, do którego łączy się QGIS, aby utworzyć wewnętrzną instancję interpretera języka Python. Możesz używać innych dystrybucji w Pythonie, ale musisz samodzielnie skompilować QGIS ze źródła, co oznacza również wszelkie zależności, takie jak moduły skompilowane w Pythonie C (QScintilla itp.), Również muszą zostać zbudowane w oparciu o tę instalację Pythona. Innymi słowy, kompilacja ze źródła przy użyciu OSGeo4W może być trudna dla zależności, a także przy użyciu innego Pythona niż OSGeo4W.
dakcarto

co masz na myśli mówiąc „jak połączyć dwa”? wymiana danych z QGIS nie wymaga ścisłej integracji Pythona. Przydałoby się mieć QGIS w środowisku anaconda env, ale nie jest wcale proste ustawienie wszystkich zależności python anaconda w środowisku OSGeo4W.
Luigi Pirelli

To bardzo istotne pytanie dla QGIS w systemie Windows. Dystrybucja Pythona zawarta w OSGeo4W ma wiele nieaktualnych modułów (np. Numpy, scipy) i istnieje wiele modułów, które wymagają kompilacji i / lub łączenia (netCDF4, rasterio), które pipnie mogą tego zrobić - ale condamogą. Anaconda ma przepisy na budowę gdali wiele innych rzeczy, więc zastanawiam się, ile zależności QGIS nie może zapewnić Anaconda?
j08lue

W systemie Linux, czy ustawianie domyślnego Pythona w Pythonie może pomóc ( export PATH="/path/to/anaconda/bin:$PATH")? Czy jest na /usr/bin/pythonstałe zakodowany w QGIS?
j08lue

Odpowiedzi:


3

W systemie Windows najlepszą opcją jest obecnie użycie dystrybucji Python, którą można zainstalować za pośrednictwem OSGeo4W i zainstalować również pipza pomocą instalatora OSGeo4W.

Chociaż pipnie można zainstalować wielu pakietów wymagających połączenia z bibliotekami zewnętrznymi (np. NetCDF lub GEOS) bezpośrednio z indeksu pakietu, obejściem jest zainstalowanie tych nieoficjalnych, wstępnie skompilowanych plików binarnych z http://www.lfd.uci.edu/~gohlke/ pythonlibs / i zainstaluj je w powłoce OSGeo4W poprzez pip install path-to-downloaded-binary.whl.

[Edytuj 2018] Teraz istnieje również opcja instalacji QGIS za pośrednictwem (Ana) conda:

conda install -c conda-forge qgis

2

Można to zrobić w środowiskach conda. Stworzyłbyś środowisko z dopasowaną wersją Pythona do tej, która instaluje qgis (musisz upewnić się, że zarówno instalacja anakondy, jak i qgis mają tę samą architekturę). Następnie musisz dodać odpowiednie ścieżki do ścieżki systemowej środowiska i ścieżki python. Istnieją różne ścieżki, które qgis dołącza do ścieżki systemowej podczas uruchamiania i można je wyświetlić wszystkie poprzez menu opcji qgis iirc. Aby dodać ścieżki do środowiska conda, spójrz tutaj http://conda.pydata.org/docs/using/envs.html#windows . Gdy aktywujesz środowisko, wszystkie odpowiednie ścieżki zostaną dodane i powinieneś być w stanie zaimportować biblioteki qgis.

To nie pozwoli ci używać anakondy przez qgis, ale pozwoli ci używać twoich skryptów qgis itp. Przez anaconda

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.