如何从我的virtualenv访问QGIS模块


11

我正在运行Ubuntu 14.4,并且已经安装了python虚拟环境。然后我pip安装了几个python库(gdal,lxml,psycopg2等)

同样在我的系统中,我有用于QGIS的模块。因此,当我输入python时,我可以将该模块导入为:

import qgis.core

但是,当我尝试通过virtualenv执行相同操作时,出现错误:找不到模块。

创建virtualenv时,我使用了以下选项:

virtualenv --no-site-packages env

这限制了我的环境不受系统环境的影响。问题是如何在我的virtualenv中访问QGIS模块?


1
可能会有所帮助。我自己还没有尝试过。
Nate Wanner

1
也可能会有所帮助。我自己还没有尝试过。
马提亚斯·库恩

Answers:


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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.