Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有python解释器的virtualenv比系统范围解释器更新_Python_Python 2.7_Gtk_Virtualenv_Pygtk - Fatal编程技术网

具有python解释器的virtualenv比系统范围解释器更新

具有python解释器的virtualenv比系统范围解释器更新,python,python-2.7,gtk,virtualenv,pygtk,Python,Python 2.7,Gtk,Virtualenv,Pygtk,编辑:如果您投票认为该问题重复,请至少花时间阅读该问题,而不是仅仅将其标记为重复问题,因为它看起来与另一个问题类似。如果你这么做了,你会马上意识到它不是复制品。我只是想展示一些更广阔的背景。 我的发行版仍然使用Python 2.6作为Python解释器。现在我想使用一个模块,它需要Python2.7。我安装了Python2.7,但它会破坏其他应用程序。因此,我使用Python 2.7作为解释器设置了一个虚拟环境: virtualenv -p ~/pkg/bin/python2.7 venv 如

编辑:如果您投票认为该问题重复,请至少花时间阅读该问题,而不是仅仅将其标记为重复问题,因为它看起来与另一个问题类似。如果你这么做了,你会马上意识到它不是复制品。我只是想展示一些更广阔的背景。

我的发行版仍然使用Python 2.6作为Python解释器。现在我想使用一个模块,它需要Python2.7。我安装了Python2.7,但它会破坏其他应用程序。因此,我使用Python 2.7作为解释器设置了一个虚拟环境:

virtualenv -p ~/pkg/bin/python2.7 venv
如果我激活虚拟环境并运行python,则会使用新的解释器。好!!现在我需要导入模块,例如

import gtk
这是全局性的(即在Python2.6中),但在我的虚拟环境中(即在Python2.7中)不起作用。我试图为虚拟环境设置相同的
sys.path
,但这会导致以下错误:

importorror:/usr/lib64/python2.6/site-packages/gtk-2.0/glib//u glib.so:未定义符号:PyUnicodeUCS4\u DecodeUTF8

这在某种程度上是意料之中的

搜索

pip search gtk
也不会导致任何结果。我现在最好的猜测是,我必须从源代码安装gtk,并根据Python2.7编译它。然而,这又引入了其他依赖项,在这个洞里走了7到8步,我辞职了


是否有更简单的方法解决此问题?

首次激活虚拟环境后,您需要安装所需的任何软件包(例如,
pip install pep8 naming

创建虚拟环境时,它基本上充当python的独立安装。如果以前在全局Python 2.6实例中安装了
gtk
(或任何其他软件包),则在Python 2.7虚拟环境中不可用

相反,您需要在切换到环境后重新安装所需的任何软件包

例如,在我的Mac上,默认的系统python是2.7

$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
但我安装了很多蟒蛇:

$ python <tab><tab>
python             python2.7-32       python3.2m-config  python3.4m         pythonw2.7-32
python-32          python2.7-config   python3.3          python3.4m-config  pythonw3
python-config      python3            python3.3-32       pythontex          pythonw3-32
python2            python3-32         python3.3-config   pythonw            pythonw3.2
python2-32         python3-config     python3.3m         pythonw-32         pythonw3.2-32
python2-config     python3.2          python3.3m-config  pythonw2           pythonw3.3
python2.6          python3.2-32       python3.4          pythonw2-32        pythonw3.3-32
python2.6-config   python3.2-config   python3.4-32       pythonw2.6         
python2.7          python3.2m         python3.4-config   pythonw2.7         

可能是@snakecharmerb的复制品不是那样。pfnuesel:不,不能在Python2.7中使用Python2.6c扩展。取而代之的是:考虑升级你的操作系统,这样你就可以得到2.7甚至更好的Python 3。@安蒂哈帕拉是的,这对我来说是有意义的。升级,虽然是个好建议,但不幸的是不可能,因为这是我们的服务器操作系统,运行在几千台服务器上。@Snakecherb请看我的编辑。我理解所有这些。我的问题是如何为比系统上安装的解释器更新的解释器安装
gtk
。@pfnuesel,您在激活的virtualenv中使用pip。所以,您只是想知道要安装哪个软件包?您是否尝试过pip安装PyGTK?@kdopen是
pip install PyGTK
提供了
无法找到满足PyGTK要求的版本(从版本:)未找到与PyGTK匹配的发行版。
$ mkvirtualenv -p `which python3.4` test
Running virtualenv with interpreter /Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Installing setuptools, pip, wheel...pdone.
$ pip list
pip (7.1.2)
setuptools (18.2)
wheel (0.24.0)