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

332nm8kg  于 12个月前  发布在  Python
关注(0)|答案(7)|浏览(114)

我的机器上有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开关失效。
谢谢

7cjasjjr

7cjasjjr1#

更好:

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

字符串
如果您没有py.exe启动程序(但应该已安装),您可以将py -3.4替换为c:\Python34\python.exe(假定默认位置)
这一点之所以可行,是因为它有一个非常好用的运行时选择器py.exe
默认情况下,py.exe将出现在Windows安装中(我想它附带了2. 7,当你运行py的时候,它会搜索一些环境变量,或者你可以用一个特定的版本号来覆盖它(在您的情况下是-2.7-3.4)您可以省略.4,它将选择“最大”的次要版本号。
你也可以用它来运行Python脚本。如果你在脚本的顶部放一个hash-bang行,并将其命名为#!python3,那么它会通过搜索脚本的第一行并搜索版本号来选择正确的Python版本。
这很酷,因为您可以在脚本的顶部放置类似#!/usr/bin/env python3.4的内容,然后在Windows上使用py运行它,或者在Linux上通过

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


挺有用的。

jhkqcmku

jhkqcmku2#

在Windows下,你需要运行:

virtualenv -p c:\python34.exe myvirtualenv

字符串
最后的.exe使所有的区别。

3df52oht

3df52oht3#

我花了一段时间才把它弄对。我已经安装了Python 2.7.9(Windows 7),想用最新的Python 3版本来转一转。在安装了Python 3.4.3之后,我去了目录栏,用这个命令创建了一个虚拟环境foo:

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

字符串
我花了相当长的时间才明白我需要以“正常”方式安装Python3.4.3解释器,我最初认为它会使用virtualenv安装。这在this answer中有解释。安装Python3.4.3后,我没有接触Windows中的pythonpath。

ifsvaxew

ifsvaxew4#

如果上述措施不起作用,请尝试以下操作(使用venv而不是virtualenv):

python -m venv venvname

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

xtfmy6hx

xtfmy6hx5#

在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

字符串
(and在此之前,我不得不buggerize周围添加virtualenv模块)

66bbxpm5

66bbxpm56#

你可以像这样使用virtualenv命令

virtualenv --python=C:\python34\python.exe myvirtualenv

字符串
Python 3.7示例

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

bgtovc5b

bgtovc5b7#

在Windows上,你可以这样做:
1.从Python Document下载并安装python 3.4版本。python版本通常安装在C:\Users\AppData\Local\Programs\Python\Python34
1.使用以下命令使用已安装的python版本创建venv
C:<user>Users\AppData\Local\Programs\Python\Python34\python-m venv<venv_name>

相关问题