Como acessar o módulo QGIS do meu virtualenv

11

Estou executando um Ubuntu 14.4 e instalei um ambiente virtual python. Então eu instalei várias bibliotecas python (gdal, lxml, psycopg2 etc.)

Também no meu sistema eu tenho o módulo para QGIS. Então, quando eu digito python, posso importar este módulo como:

import qgis.core

Mas quando tento fazer o mesmo através do meu virtualenv, recebo um erro: módulo não encontrado.

Quando criei o virtualenv, fiz com a opção:

virtualenv --no-site-packages env

O que restringe meu env do env do sistema. A questão é como acessar o módulo QGIS no meu virtualenv?

user1919
fonte
1
Isso pode ajudar. Ainda não tentei, ainda.
Nate Wanner 10/10
1
Isso também pode ajudar. Ainda não tentei.
Matthias Kuhn

Respostas:

1

Após criar e ativar seu virtualenv:

virtualenv --no-site-packages env
source env/bin/activate
pip install [your libs]

Você deve definir a variável de ambiente PYTHONPATH para o caminho de instalação python do seu QGIS.

altere [qgispath] para o caminho do seu qgis:

export PYTHONPATH=/[qgispath]/share/qgis/python

também será necessário definir LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/[qgispath]/lib

para evitar esse erro

>>> import qgis.core
ImportError: libqgis_core.so.1.5.0: cannot open shared object file: No such file or directory

Seu pythonpath é definido apenas para o virtualenv e para sua sessão. Se você deseja defini-lo automaticamente sob este virtualenv, é possível criar um arquivo env/lib/python2.7/site-packagescom um arquivo .pth.

A maneira mais conveniente é adicionar um arquivo de configuração de caminho a um diretório que já está no caminho do Python, geralmente no diretório ... / site-packages /. Os arquivos de configuração do caminho têm uma extensão .pth e cada linha deve conter um único caminho que será anexado ao sys.path. (Porque os novos caminhos são anexadas ao sys.path, módulos nos diretórios adicionados não irá substituir módulos padrão. Isso significa que você não pode usar esse mecanismo para instalar versões fixas de módulos padrão.) Fonte

Para criar e preencher o arquivo, use um comando como esse:

cat > [yourVirtualEnv]/lib/python2.7/site-packages/qgispythonpath.pth << /[qgispath]/share/qgis/python

Encontrado no livro de receitas Python Qgis e um conjunto de respostas relacionado pythonpath

Hugo Roussaffa - GeoDatup
fonte