Vincule o QGIS à distribuição Python do Anaconda: Spyder, iPython Notebook, pip, scikit-learn


20

Eu tenho o Anaconda como minha distribuição principal do Python e quero rotear scripts QGIS relacionados ao Python através dele. Com o Anaconda, eu tenho o Spyder, posso instalar facilmente pacotes com pip e posso iniciar um navegador iPython Notebook para compartilhamentos de tela e código de armazenamento que pretendo executar nos meus dados antes, durante e após manipulações no QGIS (que chama o QGIS pacotes como o scikit-learn).

Não consigo encontrar nenhum útil em lugar nenhum sobre como vincular os dois.

Estou usando o Windows 8.1, mas se isso puder ser feito apenas no Linux, posso tentar configurá-lo na minha área de trabalho, que está executando o Mint 13. Só preciso ter uma webcam e um microfone, encontrados no meu laptop, mas não no momento, para uma demonstração interativa e entrevista na terça-feira.


2
No Windows, se você estiver usando o OSGeo4W para o instalador, precisará continuar usando a instalação do Python, que é o que o QGIS vincula para criar sua instância interna do interpretador de Python. Você pode usar outras distros do Python, mas precisaria compilar o QGIS a partir do código-fonte, o que também significa que quaisquer dependências, como módulos compilados pelo Python C (QScintilla, etc.), também precisam ser construídas contra essa instalação do Python. Em outras palavras, pode ser difícil criar a partir da fonte usando o OSGeo4W para dependências, enquanto também se usa um Python diferente do OSGeo4W.
Dakcarto

o que você quer dizer com "como vincular os dois"? a troca de dados com o QGIS não requer uma integração estreita do python. Seria útil ter o QGIS no anaconda env, mas não é simples definir todas as dependências do anaconda python no OSGeo4W env.
Luigi Pirelli

Esta é uma pergunta muito relevante para o QGIS no Windows. A distribuição Python incluída no OSGeo4W possui muitos módulos desatualizados (por exemplo, numpy, scipy) e existem vários módulos que exigem compilação e / ou vinculação (netCDF4, rasterio) que pipnão podem fazer - mas condapodem. O Anaconda tem receitas para construção gdale muitas outras coisas, então eu me pergunto quantas dependências do QGIS não podem ser fornecidas pelo Anaconda?
j08lue

No Linux, tornar seu Anaconda Python o Python padrão pode ajudar ( export PATH="/path/to/anaconda/bin:$PATH")? Ou é /usr/bin/pythoncodificado no QGIS?
j08lue

Respostas:


3

No Windows, sua melhor opção atualmente é usar a distribuição Python que pode ser instalada através do OSGeo4W e instalar pipatravés do instalador do OSGeo4W também.

Embora pipnão seja possível instalar muitos pacotes que exigem vinculação a bibliotecas externas (por exemplo, netCDF ou GEOS) diretamente do índice do pacote, uma solução alternativa é instalar esses binários pré-compilados não oficiais em http://www.lfd.uci.edu/~gohlke/ pythonlibs / e instale-os no OSGeo4W Shell através do pip install path-to-downloaded-binary.whl.

[Editar 2018] Agora também há a opção de instalar o QGIS via (Ana) conda:

conda install -c conda-forge qgis

2

Isso pode ser feito com ambientes conda. Você criaria um ambiente com uma versão python correspondente à que o qgis instala (você precisa garantir que a instalação do anaconda e o qgis sejam da mesma arquitetura). Em seguida, você precisa adicionar os caminhos relevantes ao caminho do sistema do ambiente e ao caminho python. Existem vários caminhos que o qgis anexa ao caminho do sistema na inicialização e você pode visualizá-los através do menu de opções do qgis, iirc. Para adicionar caminhos a um ambiente conda, consulte aqui http://conda.pydata.org/docs/using/envs.html#windows . Ao ativar o ambiente, todos os caminhos relevantes serão adicionados e você poderá importar as bibliotecas qgis.

Isso não permitirá que você use o anaconda através do qgis, mas permitirá que você use seus scripts qgis etc. através do anaconda

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.