Comment accéder au module QGIS depuis mon virtualenv

11

J'utilise un Ubuntu 14.4 et j'ai installé un environnement virtuel python. Ensuite, j'ai installé plusieurs bibliothèques python (gdal, lxml, psycopg2, etc.)

Aussi dans mon système, j'ai le module pour QGIS. Donc, quand je tape python, je peux importer ce module en tant que:

import qgis.core

Mais lorsque j'essaie de faire la même chose via mon virtualenv, j'obtiens une erreur: module introuvable.

Quand j'ai créé le virtualenv, je l'ai fait avec l'option:

virtualenv --no-site-packages env

Ce qui restreint mon env de l'env du système. La question est de savoir comment accéder au module QGIS dans mon virtualenv?

user1919
la source
1
Cela pourrait aider. Je ne l'ai pas encore essayé moi-même.
Nate Wanner
1
Cela pourrait également aider. Je ne l'ai pas essayé moi-même.
Matthias Kuhn

Réponses:

1

Après avoir créé et activé votre virtualenv:

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

Vous devez définir la variable d'environnement PYTHONPATH sur le chemin d'installation python de votre QGIS.

veuillez changer [qgispath] pour le chemin de votre qgis:

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

il sera également nécessaire de définir LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/[qgispath]/lib

pour éviter cette erreur

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

Votre chemin python n'est défini que pour virtualenv et pour votre session. Si vous souhaitez le définir automatiquement sous ce virtualenv, vous pouvez créer un fichier sous env/lib/python2.7/site-packagesavec un fichier .pth.

Le moyen le plus pratique consiste à ajouter un fichier de configuration de chemin d'accès à un répertoire qui se trouve déjà sur le chemin d'accès de Python, généralement dans le répertoire ... / site-packages /. Les fichiers de configuration de chemin ont une extension .pth, et chaque ligne doit contenir un seul chemin qui sera ajouté à sys.path. (Étant donné que les nouveaux chemins sont ajoutés à sys.path, les modules des répertoires ajoutés ne remplaceront pas les modules standard. Cela signifie que vous ne pouvez pas utiliser ce mécanisme pour installer des versions fixes de modules standard.) Source

pour créer et remplir le fichier, utilisez une commande comme celle-ci:

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

Trouvé dans le livre de recettes Python Qgis, et un ensemble de réponses associé pythonpath

Hugo Roussaffa - GeoDatup
la source