Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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,python3?_Python_Macos_Python 3.x_Pygame_Virtualenv - Fatal编程技术网

Python-Virtualenv,python3?

Python-Virtualenv,python3?,python,macos,python-3.x,pygame,virtualenv,Python,Macos,Python 3.x,Pygame,Virtualenv,似乎每个人都推荐virtualenv用于多个python版本(在osx上),但它甚至可以用于python 3.0吗?我下载了它,但它似乎不。。我真的不明白它是如何工作的,你能在某个时候“打开”env吗?我想要的是离开系统Python2.5(显然),让带有subversion pygame的Python3.1.1编写我自己的东西,让带有普通稳定pygame的Python2.6运行其他东西,比如从pygame.org下载的pygame游戏。关于如何做到这一点有什么帮助吗?谢谢 好吧,我意识到virt

似乎每个人都推荐virtualenv用于多个python版本(在osx上),但它甚至可以用于python 3.0吗?我下载了它,但它似乎不。。我真的不明白它是如何工作的,你能在某个时候“打开”env吗?我想要的是离开系统Python2.5(显然),让带有subversion pygame的Python3.1.1编写我自己的东西,让带有普通稳定pygame的Python2.6运行其他东西,比如从pygame.org下载的pygame游戏。关于如何做到这一点有什么帮助吗?谢谢


好吧,我意识到virtualenv不是我要找的东西。

不确定我是否正确理解了你的意思,但接下来是:)


我不知道OSX,但是在Linux中你可以同时安装2.6和3。然后,您可以指定使用python25或python3,或者将/usr/bin/python符号链接更改为默认情况下要使用的版本。

virtualenv
旨在创建python环境的隔离环境。在多个Python实例中使用它的诀窍是将
virtualenv
安装到您想要使用它的每个Python版本中,例如:

/usr/bin/easy_install-2.6 virtualenv
/usr/local/bin/easy_install virtualenv
sudo port install py26-virtualenv
/usr/bin/python2.6 virtualenv.py ENV
/usr/local/bin/python2.6 virtualenv.py ENV
/opt/local/bin/python2.5 virtualenv.py ENV
或者使用预期的Python版本调用它,例如:

/usr/bin/easy_install-2.6 virtualenv
/usr/local/bin/easy_install virtualenv
sudo port install py26-virtualenv
/usr/bin/python2.6 virtualenv.py ENV
/usr/local/bin/python2.6 virtualenv.py ENV
/opt/local/bin/python2.5 virtualenv.py ENV
因此,它不能直接解决您希望使用哪种Python的问题(在OSX上尤其严重)。有多种方法可以解决这个问题:使用目标Python的绝对路径(如上面的示例所示),定义shell别名,仔细管理
$PATH
搜索顺序,等等

目前,Python3不支持AFAIK,
virtualenv
,因为除其他外,(easy_install背后的魔力)在Python3上还不受支持,尽管有一个解决方案


顺便说一句,许多人使用Doug Hellman来简化virtualenv的使用。

您的用例实际上并不需要virtualenv。您只需要安装几个不同的Python版本。

对我来说效果很好。我还安装了pypi.python.org/pypi/distribute。这也适用于提到的www.doughellmann.com/docs/virtualenvwrapper/。不过我只在Linux上测试过这个问题。

这是一个老问题,但我自己在谷歌搜索答案时发现了它,我认为提供的答案不是人们想要的

据我所知,您想用不同的Python版本创建不同的虚拟环境吗

这非常简单,您只需要virtualenv本身

例如,对于Python 3:

$ virtualenv -p python3 p34env

(...)
New python executable in p34env/bin/python3.4
Also creating executable in p34env/bin/python
Installing setuptools, pip...done.

$ source p34env/bin/activate

(p34env)$ python -V
Python 3.4.2

(p34env)$ deactivate 
$
您可以使用
source
命令来激活venv,并
deactivate
来-您猜到了-去激活它。请注意提示更改以指示环境

对于系统的标准版Python,只需跳过
-p python3
参数,就可以使用该参数指向给定路径的任何版本


最后一个参数是名称(
p34env
),您可以随意制作,只需给它们不同的名称即可。

您指的是没有virtualenv吗?不,我指的是使用多个python版本。据我所知,virtualenv用于处理多个版本的依赖关系,而不是python本身的多个版本。但是我可能错了:-)我只是喜欢使用最新的版本,我只是把自学编程作为一种爱好,所以我使用哪个版本对其他人来说并不重要。所以,对于pygame,你认为我应该坚持使用2.6吗?是的,你应该坚持使用2.6。我在编程方面没有那么先进,就像我说的,自学,但如果可以的话,我可能会帮助你,听起来很有趣。你是核心开发人员吗?从1.6版开始,virtualenv就支持Python 3。我已经有了Python 3.2.3,但我必须在课程中安装Python 3.3.2,我的旧代码与pygame相关,我想在安装它之后使用virtualenv,还有pip,我不知道如何将pygame包含到每个环境中,无论是Python3.3.2还是Python3.2.3,我使用的是windows xp,欢迎任何意见、说明或参考。