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

332nm8kg  于 2024-01-05  发布在  Python
关注(0)|答案(7)|浏览(140)

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

  1. virtualenv -p c:\python34 myvirtualenv

字符串
但这对我不起作用。控制台会话具有管理员权限,UAC关闭,但我遇到了权限问题:

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


我也试过专门指向3.4版本的virtualenv,但没有改变路径,它最终执行2.7和3.4 python文件的混合包。
我能找到的设置虚拟环境的唯一方法是将我的路径更改为3.4,运行virtualenv然后将我的路径重置为2.7,这使virtualenv上的python开关失效。
谢谢

7cjasjjr

7cjasjjr1#

更好:

  1. 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上通过

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


挺有用的。

展开查看全部
jhkqcmku

jhkqcmku2#

在Windows下,你需要运行:

  1. virtualenv -p c:\python34.exe myvirtualenv

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

3df52oht

3df52oht3#

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

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

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

ifsvaxew

ifsvaxew4#

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

  1. python -m venv venvname

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

xtfmy6hx

xtfmy6hx5#

在Windows上使用GitBash,我也遇到了一些麻烦。
我在Windows路径上有Python 3.6,但试图创建一个Python 2.7虚拟环境来测试一个旧项目。
最终通过以下方式使其工作:

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

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

66bbxpm5

66bbxpm56#

你可以像这样使用virtualenv命令

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

字符串
Python 3.7示例

  1. 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>

相关问题