Tautan QGIS ke Anaconda Python Distribution: Spyder, iPython Notebook, pip, scikit-learn


20

Saya memiliki Anaconda sebagai distro Python utama saya, dan ingin mengarahkan skrip QGIS terkait Python melaluinya. Dengan Anaconda, saya memiliki Spyder, dapat dengan mudah menginstal paket-paket dengan pip, dan dapat meluncurkan browser web iPython Notebook untuk kedua berbagi layar dan menyimpan kode yang ingin saya eksekusi pada data saya sebelum, selama, dan setelah manipulasi di QGIS (yang memanggil paket seperti scikit-learn).

Saya tidak dapat menemukan yang berguna di mana pun tentang cara menautkan keduanya.

Saya menggunakan Windows 8.1, tetapi jika ini hanya dapat dilakukan di Linux, saya dapat mencoba mengaturnya di desktop saya, yang menjalankan Mint 13. Saya hanya perlu memiliki webcam dan mikrofon, ditemukan di laptop saya tetapi tidak desktop saat ini, untuk demo dan wawancara interaktif pada hari Selasa


2
Pada Windows, jika Anda menggunakan OSGeo4W untuk installer Anda, Anda harus terus menggunakan instalasi Python, yang merupakan tautan QGIS untuk membuat instance interpreter Python internal. Anda dapat menggunakan distro Python lain, tetapi Anda perlu mengkompilasi QGIS dari sumber sendiri, yang juga berarti dependensi, seperti modul yang dikompilasi Python C (QScintilla, dll.), Perlu dibangun terhadap instalasi Python juga. Dengan kata lain, mungkin sulit untuk membangun dari sumber menggunakan OSGeo4W untuk dependensi, sementara juga menggunakan Python yang berbeda dari OSGeo4W.
dakcarto

apa maksudmu untuk "bagaimana menghubungkan keduanya"? menukar data dengan QGIS tidak memerlukan integrasi python yang ketat. Akan bermanfaat memiliki QGIS di anaconda env, tetapi tidak mudah mengatur semua dependensi anaconda python di dalam OSGeo4W env.
Luigi Pirelli

Ini adalah pertanyaan yang sangat relevan untuk QGIS di Windows. Distribusi Python yang disertakan dengan OSGeo4W memiliki banyak modul yang ketinggalan jaman (mis. Numpy, scipy) dan ada sejumlah modul yang memerlukan kompilasi dan / atau penghubungan (netCDF4, rasterio) yang piptidak bisa dilakukan - tetapi condabisa. Anaconda memiliki resep untuk membuat gdaldan banyak hal lainnya, jadi saya ingin tahu berapa banyak ketergantungan QGIS yang tidak dapat disediakan oleh Anaconda?
j08lue

Di Linux, menjadikan Anaconda Python Anda sebagai Python default mungkin membantu ( export PATH="/path/to/anaconda/bin:$PATH")? Atau apakah /usr/bin/pythonhardcoded dalam QGIS?
j08lue

Jawaban:


3

Pada Windows, opsi terbaik Anda saat ini adalah menggunakan distribusi Python yang dapat diinstal melalui OSGeo4W dan menginstal pipmelalui installer OSGeo4W juga.

Meskipun piptidak dapat menginstal banyak paket yang memerlukan tautan ke pustaka eksternal (mis. NetCDF atau GEOS) langsung dari indeks paket, solusinya adalah dengan menginstal binari pra-kompilasi tidak resmi ini dari http://www.lfd.uci.edu/~gohlke/ pythonlibs / dan instal di OSGeo4W Shell through pip install path-to-downloaded-binary.whl.

[Sunting 2018] Sekarang ada juga opsi untuk menginstal QGIS via (Ana) konda:

conda install -c conda-forge qgis

2

Ini dapat dilakukan dengan lingkungan conda. Anda akan menciptakan lingkungan dengan versi python yang cocok dengan instalasi satu qgis (Anda perlu memastikan instalasi anaconda dan qgis Anda memiliki arsitektur yang sama). Maka Anda perlu menambahkan jalur yang relevan ke jalur sistem lingkungan dan jalur python Anda. Ada berbagai jalur qgis yang bergantung pada jalur sistem pada startup dan Anda dapat melihatnya semuanya melalui menu opsi qgis iirc. Untuk menambahkan path ke lingkungan conda, lihat di sini http://conda.pydata.org/docs/using/envs.html#windows . Saat Anda mengaktifkan lingkungan, semua jalur yang relevan akan ditambahkan dan Anda harus dapat mengimpor qgis libs.

Ini tidak akan membiarkan Anda menggunakan anaconda melalui qgis, tetapi ia akan membiarkan Anda menggunakan skrip qgis Anda dll melalui anaconda

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.