在 Windows 上将 VirtualEnv 与多个 Python 版本一起使用

问题描述 投票:0回答:7

我的机器上有 python 2.7.6 和 3.4.0。 2.7版本已经在我的路上了。我想使用 3.4 设置一个 virtualenv。 SO 和其他地方有很多帖子建议我从命令提示符执行以下操作:

virtualenv -p c:\python34 myvirtualenv

但这对我不起作用。控制台会话具有管理员权限并且 UAC 已关闭,但是我遇到权限问题:

F:\virtualenv>virtualenv -p c:\python34 myenv
Running virtualenv with interpreter c:\python34
Traceback (most recent call last):
  File "c:\python27\scripts\virtualenv-script.py", line 9, in <module>
    load_entry_point('virtualenv==1.11', 'console_scripts', 'virtualenv')()
  File "C:\Python27\lib\site-packages\virtualenv.py", line 779, in main
    popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env)
  File "C:\Python27\lib\subprocess.py", line 709, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 957, in _execute_child
    startupinfo)
WindowsError: [Error 5] Access is denied

我还尝试过专门指向 3.4 版本的 virtualenv,但在不更改路径的情况下,它最终会执行 2.7 和 3.4 python 文件的混合包。

我能找到的设置虚拟环境的唯一方法是将路径更改为 3.4,运行 virtualenv,然后将路径重置为 2.7,这违背了 virtualenv 上 python 开关的要点。

谢谢

python virtualenv
7个回答
55
投票

更好:

py -3.4 -m venv c:\path\to\wherever\you\want\it

如果您没有

py.exe
启动器(但应该安装),您可以将
py -3.4
替换为
c:\Python34\python.exe
(假设默认位置)


这之所以有效,是因为它有方便、Windows 版本、超级好的运行时选择器

py.exe

默认情况下,

py.exe
将出现在 Windows 安装中(我认为它随 2.7 一起提供,我知道它随 3+ 一起提供)。当您运行
py
时,它将搜索一些环境变量,或者您可以使用特定的版本号覆盖它(在您的情况下为
-2.7
-3.4
)您可以省略
.4
,它会选择“最大的”次版本号。

您也可以使用它来运行Python脚本。如果您在脚本顶部放置一个 hash-bang 行 #!python3

 并将其命名为 
py myscript.py
 那么它将通过搜索脚本的第一行并搜索版本号来选择正确的 Python 版本作为开始。 

这很酷,因为您可以将类似

#!/usr/bin/env python3.4

 的内容放在脚本顶部,并在 Windows 上使用 
py
 运行它,或者在 Linux 上运行

$ chmod +x myscript.py $ ./myscript.py

非常有用。


14
投票
在Windows下你需要运行:

virtualenv -p c:\python34.exe myvirtualenv

最后的 .exe 使一切变得不同。


8
投票
必须尝试一段时间才能得到正确的结果。安装了 Python2.7.9 (Windows 7),想尝试一下最新的 Python3 版本。安装Python3.4.3后,我进入目录bar并使用以下命令创建了一个虚拟环境foo:

virtualenv -p c:\Python34\python.exe foo

我花了相当长的时间才明白我需要以“正常”方式安装Python3.4.3解释器,我最初以为它会使用virtualenv安装。这在

这个答案中进行了解释。我安装Python3.4.3后没有碰Windows中的pythonpath。


2
投票
如果上述措施不起作用,请尝试此操作(使用 venv 而不是 virtualenv):

python -m venv venvname

(如果环境变量路径设置中没有列出python,请将其替换为python.exe路径)


0
投票
在 Windows 上使用 GitBash,我在使其正常工作时也遇到了一些麻烦。

我在 Windows 路径上有 Python 3.6,但正在尝试创建一个 Python 2.7 虚拟环境来测试旧项目。

最终通过以下方式使其工作:

1. adding the C:\Python27 path to my Windows environment variables 2. virtualenv -p c:/python27/python.exe venvname

(在此之前我不得不为添加 virtualenv 模块而烦恼)


0
投票
您可以像这样使用 virtualenv 命令

virtualenv --python=C:\python34\python.exe myvirtualenv
Python 3.7 的示例

virtualenv --python=C:\Users\hp\AppData\Local\Programs\Python\Python37\python.exe myenv
    

0
投票
在 Windows 上您可以执行以下操作:

  1. Python文档下载并安装python 3.4版本。 python版本通常安装在C:\Users\AppData\Local\Programs\Python\Python34

  2. 使用命令创建已安装Python版本的venv

    C:\Users

    \AppData\Local\Programs\Python\Python34\python -m venv

© www.soinside.com 2019 - 2024. All rights reserved.