要将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)
现在在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)
| 归档时间: |
|
| 查看次数: |
3480 次 |
| 最近记录: |