virtualenvからQGISモジュールにアクセスする方法


11

Ubuntu 14.4を実行していて、Python仮想環境をインストールしました。その後、いくつかのPythonライブラリ(gdal、lxml、psycopg2など)をpipインストールしました

私のシステムにもQGIS用のモジュールがあります。したがって、pythonと入力すると、このモジュールを次のようにインポートできます。

import qgis.core

しかし、virtualenvで同じことを行おうとすると、「モジュールが見つかりません」というエラーが表示されます。

virtualenvを作成したときに、次のオプションを使用しました。

virtualenv --no-site-packages env

これはシステムの環境から私の環境を制限します。問題は、virtualenvでQGISモジュールにアクセスする方法ですか?


1
これが役立つかもしれません。まだ自分で試したことがありません。
ネイトワナー

1
これも役立つ場合があります。自分で試したことがありません。
マティアスクーン

回答:


1

virtualenvを作成してアクティブにした後:

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

QGISのPythonインストールパスにPYTHONPATH環境変数を定義する必要があります。

[qgispath]をqgisのパスに変更してください:

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

LD_LIBRARY_PATHを設定する必要もあります

export LD_LIBRARY_PATH=/[qgispath]/lib

このエラーを防ぐために

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

pythonpathは、virtualenvおよびセッションに対してのみ設定されます。このvirtualenvで自動的に設定する場合env/lib/python2.7/site-packagesは、.pthファイルを使用してファイルを作成でき ます。

最も便利な方法は、既にPythonのパス上にあるディレクトリ(通常は... / site-packages /ディレクトリ)にパス構成ファイルを追加することです。パス構成ファイルの拡張子は.pthであり、各行にはsys.pathに追加される単一のパスが含まれている必要があります。(新しいパスがのsys.pathに追加されるので、追加のディレクトリ内のモジュールは、標準モジュールを上書きしません。あなたは、標準モジュールの固定されたバージョンをインストールするためにこのメカニズムを使用することはできませんこの手段。)ソース

ファイルを作成して取り込むには、次のようなコマンドを使用します。

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

Python Qgisクックブックにあり、関連する回答セットpythonpath

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.