Enlace QGIS a Anaconda Python Distribution: Spyder, iPython Notebook, pip, scikit-learn


20

Tengo a Anaconda como mi distribución principal de Python, y quiero enrutar los scripts QGIS relacionados con Python a través de ella. Con Anaconda, tengo Spyder, puedo instalar fácilmente paquetes con pip y puedo iniciar un navegador web iPython Notebook para compartir la pantalla y el código de almacenamiento que pretendo ejecutar en mis datos antes, durante y después de las manipulaciones en QGIS (que requiere paquetes como scikit-learn).

No puedo encontrar ninguna información útil sobre cómo vincular los dos.

Estoy usando Windows 8.1, pero si esto solo se puede hacer en Linux, puedo intentar configurarlo en mi escritorio, que ejecuta Mint 13. Solo necesito tener una cámara web y un micrófono, que se encuentran en mi computadora portátil pero no escritorio en este momento, para una demostración interactiva y una entrevista el martes.


2
En Windows, si está utilizando OSGeo4W para su instalador, debe continuar utilizando su instalación de Python, que es a lo que se vincula QGIS para crear su instancia interna de intérprete de Python. Puede usar otras distribuciones de Python, pero necesitaría compilar QGIS desde la fuente usted mismo, lo que también significa que cualquier dependencia, como los módulos compilados en Python C (QScintilla, etc.), también debe compilarse contra esa instalación de Python. En otras palabras, puede ser difícil construir desde la fuente usando OSGeo4W para dependencias, mientras que también usa un Python diferente al de OSGeo4W.
dakcarto

¿Qué quieres decir con "cómo vincular los dos"? El intercambio de datos con QGIS no requiere una estrecha integración de Python. Sería útil tener QGIS en anaconda env, pero no es sencillo configurar todas las dependencias de anaconda python dentro de OSGeo4W env.
Luigi Pirelli

Esta es una pregunta muy relevante para QGIS en Windows. La distribución de Python incluida con OSGeo4W tiene muchos módulos obsoletos (por ejemplo, numpy, scipy) y hay una serie de módulos que requieren compilación y / o vinculación (netCDF4, rasterio) que pipno pueden, pero condapueden. Anaconda tiene recetas para construir gdaly muchas otras cosas, así que me pregunto cuántas dependencias de QGIS no pueden ser provistas por Anaconda.
j08lue

En Linux, ¿podría ayudar su Anaconda Python como Python predeterminado ( export PATH="/path/to/anaconda/bin:$PATH")? ¿O está /usr/bin/pythoncodificado en QGIS?
j08lue

Respuestas:


3

En Windows, su mejor opción es usar la distribución Python que se puede instalar a través de OSGeo4W e instalar también a piptravés del instalador OSGeo4W.

Si bien pipno puede instalar muchos paquetes que requieren vinculación a bibliotecas externas (por ejemplo, netCDF o GEOS) directamente desde el índice del paquete, una solución alternativa es instalar estos binarios precompilados no oficiales de http://www.lfd.uci.edu/~gohlke/ pythonlibs / e instálelos en OSGeo4W Shell a través de pip install path-to-downloaded-binary.whl.

[Editar 2018] Ahora también existe la opción de instalar QGIS a través de (Ana) conda:

conda install -c conda-forge qgis

2

Esto se puede hacer con entornos conda. Crearía un entorno con una versión de Python que coincida con la que instala qgis (debe asegurarse de que tanto su instalación anaconda como qgis tengan la misma arquitectura). Luego debe agregar las rutas relevantes a la ruta del sistema de su entorno y la ruta de Python. Hay varias rutas qgis antecede a la ruta del sistema en el inicio y puede verlas todas a través del menú de opciones qgis iirc. Para agregar rutas a un entorno de conda, mire aquí http://conda.pydata.org/docs/using/envs.html#windows . Cuando active el entorno, se agregarán todas las rutas relevantes y podrá importar qgis libs.

Esto no le permitirá usar anaconda a través de qgis, pero le permitirá usar sus scripts qgis, etc. a través de anaconda

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.