我在“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'>
然后无法导入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
不幸的是,这破坏了我的 ipython --pylab 环境:http ://pastebin.com/mM0ur7Hc
更新:我能够通过添加符号链接来解决这个问题,正如 grepic / 这个线程所建议的那样:Python: virtualenv - gtk-2.0
有一个细微的区别,即我的“cairo”包位于/usr/lib/pymodules/python2.7/cairo/
而不是/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
(我怀疑其中的一个或多个是不必要的,但我一直在摆弄这个太久,并决定停止调查——我的设置现在有效,所以我很满意。)
问题解决了!谢谢大家。