提问人:Hack-R 提问时间:5/25/2017 最后编辑:Hack-R 更新时间:11/20/2017 访问量:22269
使用特定版本的 Python 创建 Windows Python virtualenv
Create Windows Python virtualenv with a specific version of Python
问:
我有多个版本的 Python。我需要为我的项目创建一个virtualenv,并确保它使用的是Python 2.7。
我试图通过将本 Windows 指南和这篇 SO 帖子与特定类型的 Python 相结合来实现这一目标。virtualenv
virtualenv
不幸的是,它不起作用,这可能是因为后一个资源是由使用 Linux 的人编写的。
这是我所做的:
C:\Python27\Scripts>pip install virtualenv You are using pip version
6.0.6, however version 9.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting virtualenv Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
100% |################################| 1.8MB 3.7MB/s eta 0:00:01 Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
C:\Python27\Scripts>pip install virtualenvwrapper-win You are using pip version 6.0.6, however version 9.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting virtualenvwrapper-win Downloading virtualenvwrapper-win-1.2.1.zip Requirement already satisfied (use
--upgrade to upgrade): virtualenv in c:\python27\lib\site-packages (from virtualenvwrapper
-win) Installing collected packages: virtualenvwrapper-win Running setup.py install for virtualenvwrapper-win Successfully installed virtualenvwrapper-win-1.2.1
C:\Python27\Scripts>mkvirtualenv c:\users\hackr\Desktop\P27_D19 --python=C:\Python27\python.exe
'python.exe' is not recognized as an internal or external command, operable program or batch file.
“virtualenv.exe”未被识别为内部或外部命令, 可操作的程序或批处理文件。
更新:我只是使用普通命令而不是推荐的命令来工作,我认为这是他们让我安装的包装器的一部分。如果有人想帮助我了解发生了什么,以及不使用包装器是否有任何缺点,那将是写出答案的好方法。virtualenv
mkvirtualenv
答:
如果安装了多个 Python 版本,最好始终指定完整路径(可以肯定)并且不依赖环境变量(至少我是这样做的):
pip install virtualenv
:我这样做就像:(不介意路径)来控制 Python 安装(virtualenvwrapper 也是如此)。"C:\Install\x64\Python\3.5.3\python.exe" -m pip install virtualenv
我的“%PYTHON_INSTALLATION_DIR%\Scripts”(例如“C:\Install\x64\Python\3.5.3\Scripts”)文件夹中没有 mkvirtualenv,但是(这是我现在“制作”的示例):
"c:\Install\x64\Python\3.5.3\Scripts\virtualenv.exe" -p "c:\Install\x64\Python\2.7.13\python.exe" "c:\venvs\py2713"
从那时起:
"c:\venvs\py2713\Scripts\activate.bat"
python
......
我知道,指定所有这些时髦的路径有点烦人(在 Lnx 上要容易得多),但至少它是安全的。无论如何,在设置虚拟环境后,您可以调整环境 (%PATH%),这样您就不必指定完整路径。
我在写作时注意到了你的评论,我必须说 PyCharm(专业版)是使用 Django 的绝佳工具(事实上,一般是 Python)。另一方面,如果你选择社区版,它就不是那么好了(正如预期的那样)。[SO]:在 PyCharm Community Edition 中从鼠标右键单击上下文菜单运行/调试 Django 应用程序的 UnitTests?是我必须处理的痛苦问题之一。
@EDIT0:
刚才我安装了virtualenvwrapper-win: 。运行 mkvirtualenv,无论是通过其完整路径还是在 %PATH% () 中添加其父文件夹,都会产生相同的错误:"C:\Install\x64\Python\3.5.3\python.exe" -m pip install virtualenvwrapper-win
mkvirtualenv a
“python.exe”不被识别为内部或外部命令、可操作程序或批处理文件。
但它创建了 VEnv(在 %USERPROFILE%\Envs 下)。所以这个错误是良性的。无论如何,可以通过以下任一方式修复它:
- 设置 %PYTHONHOME%
- 在 %PATH% 中添加 python.exe 的路径
我所做的另一个步骤是将 %WORKON_HOME% 设置为我希望我的 VEnvs 所在的文件夹。请注意,环境变量必须持久化(因为我这样做只是为了测试目的,所以我只在我用于此任务的 cmd 控制台中设置它们),否则每次需要使用这些工具时都必须设置它们。
在那次工作之后,lsvirtualenv 就像一个魅力一样工作(嗯,没有 Lnx 那么好,但足够接近)。
注意(关于 mkvirtualenv v1.2.1):它将使用默认的 python.exe(见上文),作为新 VEnv 的基础,它不像 virtualenv.exe(接受 -p/--python 参数)灵活。
评论
workon
mkvirtualenv
on now 还采用参数来传递 python 可执行文件(所有其他 virtualenv 标志也可用)。virtualenvwrapper-win
-p
评论