Python:virtualenv - gtk-2.0

Pic*_*els 7 python virtualenv

要将gtk-2.0添加到我的virtualenv中,我执行了以下操作:

$ virtualenv --no-site-packages --python=/usr/bin/python2.6 myvirtualenv
$ cd myvirtualenv
$ source bin/activate
$ cd lib/python2.6/
$ ln -s /usr/lib/pymodules/python2.6/gtk-2.0/ 
Run Code Online (Sandbox Code Playgroud)

Ubuntu上的Virtualenv没有站点包

现在在Python解释器中,当我输入gtk时,它说:没有名为gtk的模块.当我用sudo启动解释器时,它可以工作.

有什么理由我需要使用sudo并且有办法防止它吗?

更新:
忘了提到cairo和pygtk工作,但它不是我需要的那个.

Update2:
这里的目录显示我并不疯狂. http://www.friendly-stranger.com/pictures/symlink.jpg

kwa*_*ord 10

sudo python导入它就好了因为解释器没有使用你的虚拟环境.所以不要这样做.

您只链接了一个必要的项目.在您回答的问题的答案中也提到了其他人.

(pygtk.pth文件特别重要,因为它告诉python实际将你链接的目录放到python路径上)

更新

把这些东西放在$ VIRTUALENV/lib/python2.6/site-packages /而不是上面的目录中.

看起来不会从该目录中读取.pth文件 - 只是从site-packages中读取


小智 6

这对我有用(Ubuntu 11.10):

一旦激活virtualenv目录,请确保'dist-packages'存在:

mkdir -p lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)

然后,建立链接:

对于GTK2:

ln -s /usr/lib/python2.7/dist-packages/glib/ lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/gobject/ lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/gtk-2.0* lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/pygtk.pth lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/dist-packages/cairo lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)

对于GTK3:

ln -s /usr/lib/python2.7/dist-packages/gi lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)