如何强制我的virtualenv看到在系统级安装的这个编译模块?

时间:2012-08-05 09:17:14

标签: python import gconf

我在Ubuntu 12.04上安装了包 python-gconf 并使用它:它是一个绑定到gnome配置工具的python,并且没有pypi包。

一旦我创建了virtualenv(没有 --no-site-packages),任何导入gconf的尝试都会导致ImportError

gconf模块在​​系统级别工作正常,但在虚拟环境中无效。我调查过,打开 python -gconf.deb 告诉我它只是一个gconf.so二进制文件。

搜索它告诉我它已安装在 /home/lib/python2.7/dist-packages/gtk-2.0/gconf.so

我确实试图强迫Python手:

sudo ln -s /usr/lib/python2.7/dist-packages/gtk-2.0/gconf.so ~/.virtualenvs/appetizer/lib/python2.7/site-packages/

但它只导致:

>>> import gconf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: could not import gobject (error was: 'No module named gobject')

所以我猜它非常依赖于GTK。

2 个答案:

答案 0 :(得分:4)

您应该使用--system-site-packages选项创建virtualenv,以使所有系统包都可见。在只需要一个外部包的情况下,将外部包混合到virtualenv的结构中也适用于大多数情况。

答案 1 :(得分:0)

如果您已经创建了虚拟环境,只需从中删除no-global-site-packages.txt文件即可查看系统软件包。