更改虚拟环境中使用的Python版本

4
我有一个在virtualenv中的项目,使用的是Python2.6版本,但现在我想让它使用Python2.7版本。有没有一种方法可以不备份我的项目文件,重新创建适用于正确Python版本的virtualenv,然后将我的文件复制回virtualenv中来完成这个任务呢?
这似乎不是很难手动完成,但自动化这个过程仍然非常有用,可以轻松地针对多个Python版本测试项目,同时仍处于virtualenv环境中。
3个回答

6

只需将您的项目移出虚拟环境文件夹即可。它们不应该在那里,因为正是出于这个原因。

使用不同版本的Python可能会引入略有不同的软件包,因此最好只创建一个新的带有2.7版本的虚拟环境,并安装所有依赖项。然后,当您想要针对不同的Python版本进行测试时,只需激活并使用正确的环境即可。


4

虽然晚了三年,但也许能帮到别人...

本回应主要适用于Windows OS (7)作为主要开发平台。以下是我建议的管理多个Python虚拟环境的步骤。

注意1:您可能需要使用管理员权限运行命令提示符。

注意2:您可能需要为每个Python版本安装一个"setuptools"版本;我不确定,因为我还没有遇到这个问题。不管使用哪个easy_install来安装virtualenv都无妨。最新的virtualenv应该能够检索并支持所有Python版本(我的逻辑猜测)。

注意3:Python .msi安装程序将写入几个条目到Windows注册表中。因此,如果您打算在几个Python版本下进行开发和测试,您可能只想使用归档分发。

  1. 设置一个环境变量(除了必须的变量,即PYTHONPATH),并将其命名为PYTHONHOME。然后,PYTHONPATH变量应该引用PYTHONHOME变量。
  2. 安装每个需要测试的Python版本,只需要将PythonX.X代码库解压缩到您选择的开发位置即可。
  3. 为了方便切换Python版本,只需为每个版本创建一个.bat文件,并为您设置系统环境变量(PYTHONHOME)。这是我使用的方法。

    您可以在名为“SetPython2.8.bat”的.bat文件中实际使用以下脚本命令:

    setx /m PYTHONHOME "path\to\python\verion2.8"

  4. 当您要创建虚拟[Python]环境时,根据所需的Python版本执行特定的.bat文件,例如上面的例子,则为“SetPython2.8.bat”。

    右键单击,以管理员身份运行

  5. 为每个Python虚拟环境创建另一个.bat文件,仅用于激活目的。现在,当您需要为特定的Python环境安装特定的库时,只需执行(作为管理员)特定的.bat文件,然后安装库。

    以下是“Activate_Python2.8_VEnv.bat”脚本的一组命令:

    title "VirtualEnv:Python2.8" set PATH_TO_WORKSPC="C:\path\to\workspace" cd %PATH_TO_WORKSPC%\VirtualEnvironments\python cd Python2.8 set "_OLD_VIRTUAL_PROMPT=$g" cmd /K Scripts\activate.bat 检查虚拟环境中的activate.bat文件,以了解我们为什么设置“_OLD_VIRTUAL_PROMPT”。

  6. 可选地,您也可以选择拥有一个主系统Python安装(如1中所述)。但就灵活性而言,虚拟环境似乎是更好的选择。

  7. [欢迎改进]

以下是一个帖子,介绍如何在Mac或Unix平台上安装不同版本的Python


3

如果你想要轻松地测试一个项目在多个Python版本下的情况,可以使用tox


@MatToufoutu:这是一个使用tox在9个不同环境中测试Python文件的示例:http://github.com/zed/test_glob1 - jfs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接