Como instalar bibliotecas python de terceiros para QGIS no Windows?
18
Como posso usar bibliotecas de terceiros em plug-ins QGIS no Windows? Eu desenvolvi um plugin que usa rasterio e numpy para um cliente, mas ele está tendo problemas para instalar o rasterio e o numpy.
Na verdade, rasterio e numpy foram instalados no sistema principal Python (C: \ Python27), mas eu preciso do QGIS Python para reconhecê-lo.
O QGIS, conforme distribuído pelo OSGeo4W, geralmente vem com sua própria instalação do Python e seus próprios pacotes que são independentes da sua instalação "regular" do Python.
A maneira mais fácil de instalar um pacote Python na distribuição OSGeo4W é abrir o OSGeo4W Shell e usar o pip a partir daí. Isso instalará o pacote na distribuição Python que o QGIS usa, no meu caso, localizado em C:\OSGeo4W64\apps\Python27\e nos módulos de acordo C:\OSGeo4W64\apps\Python27\Lib\site-packages. Você também pode fazer uma regularidade pip listno OSGeo4W Shell e no Windows Shell normal (cmd.exe) e comparar as saídas para ver quais pacotes podem estar faltando.
Se você não deseja instalar pacotes em duas instalações do Python, também pode tentar alterar o PythonPath para incluir pacotes de uma instalação para outra.
editar: Esta resposta é direcionada à pergunta original sobre o pip para instalar os módulos a serem usados com o QGIS no Windows. Desde então, o OP editou / refinou a pergunta, então essa resposta é um pouco ampla agora.
Para usar pip em OSGeoW shell que tinha que fazerpython -m pip install wheel setuptools c:\path\to\rasterio-<ver>-win_amd64.whl
chip de
13
O Numpy é instalado por padrão no QGIS (versão autônoma, versão OSGeo4W). Para o rasterio , há muitos problemas. Eu sei que o rasterio é poderoso e fácil de usar (eu o uso), mas por que o rasterio em um plug-in QGIS enquanto você tem todas as funções do PyQGIS? (foi projetado para o shell Python ou para scripts, não para ser usado com QGIS / PyQGIS, como Fiona para os shapefiles)
No Linux ou Mac OS X (sistemas Unix), o QGIS usa a instalação padrão do Python (independente do QGIS) e se é fácil instalar ou atualizar um módulo Python (também existem muitos compiladores instalados por padrão)
Mas para os módulos que precisam ser compilados (sem compilador por padrão), não é fácil. Você pode tentar copiar / colar seu módulo instalado no site_folder do QGIS Python, mas há problemas.
python -m pip install wheel setuptools c:\path\to\rasterio-<ver>-win_amd64.whl
O Numpy é instalado por padrão no QGIS (versão autônoma, versão OSGeo4W). Para o rasterio , há muitos problemas. Eu sei que o rasterio é poderoso e fácil de usar (eu o uso), mas por que o rasterio em um plug-in QGIS enquanto você tem todas as funções do PyQGIS? (foi projetado para o shell Python ou para scripts, não para ser usado com QGIS / PyQGIS, como Fiona para os shapefiles)
No Linux ou Mac OS X (sistemas Unix), o QGIS usa a instalação padrão do Python (independente do QGIS) e se é fácil instalar ou atualizar um módulo Python (também existem muitos compiladores instalados por padrão)
No Windows, o Python não é instalado por padrão e o QGIS instala sua própria versão. Para instalar módulos Python puros (sem bibliotecas C, C ++), você tem soluções ( QGIS Standalone e os módulos Python , Instalando as ferramentas de instalação do Python no OSGeo4W Python ou Instalando o PySAL para OSGeo4W )
Mas para os módulos que precisam ser compilados (sem compilador por padrão), não é fácil. Você pode tentar copiar / colar seu módulo instalado no site_folder do QGIS Python, mas há problemas.
O Rasterio precisa ser compilado em uma biblioteca GDAL instalada e, se você o instalar nos binários não oficiais do Windows Christoph Gohlke para pacotes de extensão Python , por exemplo, não tenho certeza de que a versão do GDAL usada pelo QGIS seja a mesma (para as referências ao bibliotecas dll)
Se você usa exclusivamente numpy e rasterio, por que não um script independente?
fonte
No console python 2.7.14 do Qgis 2.18.28, isso funciona para mim. Evita ter que usar prompts com caminhos python absolutos.
De acordo com os desenvolvedores de pip, pip.main ou pip._internal.main não são suportados. https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program Modifiquei o sys.executable recomendado para 'python', porque no Qgis é o próprio qgis.
fonte