全局安装Python包,但不是在virtualenv(PyGTK)中安装

tom*_*zer 4 python pygtk virtualenv

我在"virtualenv"中遇到了PyGTK的一些奇怪问题.gtk不会导入我的virtualenv,而它在我的全局python安装中导入.(上周我没有遇到这个问题,猜测某些软件更新会让人感到不安.)

有没有一种解决此问题的好方法?

如下所示:全局导入gtk,

tom@zeppelin:~$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
>>> gtk
<module 'gtk' from '/usr/lib/pymodules/python2.7/gtk-2.0/gtk/__init__.pyc'>
Run Code Online (Sandbox Code Playgroud)

然后无法导入gtk,

tom@zeppelin:~$ workon py27
(py27)tom@zeppelin:~$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named gtk
Run Code Online (Sandbox Code Playgroud)

不幸的是,这破坏了我的ipython --pylab环境:http://pastebin.com/mM0ur7Hc

更新:我能够通过添加grepic/this线程建议的符号链接来解决这个问题:Python:virtualenv - gtk-2.0

有一点微小差别,即我的"cairo"包位于/usr/lib/pymodules/python2.7/cairo/而不是in /usr/lib/python2.7/dist-packages/cairo.

第二更新:我还发现将以下行添加到我的内容很有用venv/bin/activate:

export PYTHONPATH=$PYTHONPATH:/home/tom/.virtualenvs/py27/lib/python2.7/dist-packages
export PYTHONPATH=$PYTHONPATH:/home/tom/.virtualenvs/py27/lib/python2.7/dist-packages/gtk-2.0
export PYTHONPATH=$PYTHONPATH:/usr/lib/pymodules/python2.7/gtk-2.0
Run Code Online (Sandbox Code Playgroud)

(我怀疑其中一个或多个是不必要的,但我已经花了很长时间来解决这个问题并决定停止调查 - 我的设置现在有效,所以我很满意.)

问题解决了!感谢大家.

小智 13

尝试使用--system-site-packages标志创建虚拟环境.