【发布时间】:2017-07-03 16:39:27
【问题描述】:
我在“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
(我怀疑其中的一个或多个是不必要的,但我已经摆弄这个问题太久了,并决定停止调查 - 我的设置现在有效,所以我很满意。)
问题解决了!谢谢大家。
【问题讨论】:
-
sys.path在 global 和 venv 中的输出是什么? -
pastebin.com/eWiVmUXf 看来 GTK 不在 venv 路径中,这可能是问题所在。
标签: python pygtk virtualenv