更改virtualenv中使用的python版本

时间:2010-10-23 17:19:21

标签: python virtualenv

我在virtualenv中有一个项目,它使用python2.6,但现在我想使用python2.7。有没有办法在不必备份我的项目文件的情况下执行此操作,为正确的python版本重新创建virtualenv,然后将我的文件复制回virtualenv?

这似乎不是一项需要手工完成的大任务,但是能够自动执行此操作仍然非常有用,可以轻松地针对许多python版本测试项目,同时仍然处于虚拟环境中。

3 个答案:

答案 0 :(得分:6)

只需将您的项目移到virutalenv文件夹之外。出于这个原因,他们不应该在那里。

使用不同版本的python可能会引入稍微不同的包,因此最好只创建一个新的virutalenv w / 2.7并安装所有依赖项。然后,当您想要针对不同的python版本进行测试时,只需激活您的脚本并使用正确的环境。

答案 1 :(得分:4)

这已经晚了3年,但它可能对其他人有帮助......

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

NOTE1 :您可能需要以管理员权限运行命令提示符。

NOTE2 :您可能需要为每个Python版本安装一个版本的“setuptools”;我不确定,因为我还没有越过那个[众所周知的]桥梁。使用哪个easy_install来安装 virtualenv 并不重要。应该检索最新的 virtualenv 并且应该支持所有版本的Python(我的逻辑猜测。)

NOTE3 :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”的假设脚本的命令:

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

  6. 或者,您也可以选择安装主系统Python(如1中所述)。但是,就灵活性而言,虚拟环境似乎是要走的路。

  7. [随意改进]

  8. Here is a thread with references on how to install different Python versions on a Mac or Unix platform

答案 2 :(得分:3)

要针对许多python版本轻松测试项目,可以使用tox