使用特定版本的Python创buildWindows Python virtualenv

我有多个版本的Python。 我需要为我的项目创build一个virtualenv,并确保它使用Python 2.7。

我已经尝试完成这个与本指南在Windows上的virtualenv和这个SO发表 virtualenv与特定types的Python的组合。

不幸的是,它不工作,这可能是因为后者的资源是由使用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”不被识别为内部或外部命令,可操作程序或batch file。

更新:我刚刚得到这个工作使用平原virtualenv而不是推荐的mkvirtualenv命令,我认为是他们安装的包装的一部分。 如果有人想帮助我理解发生了什么事情,并且有没有不使用包装的问题,那么这将是写出答案的好方法。

如果安装了多个Python版本,最好总是指定完整路径(可以肯定),而不是依赖于环境变量 (至少是这样做的):

  • pip install virtualenv :我这样做: "C:\Install\x64\Python\3.5.3\python.exe" -m pip install virtualenv (不介意路径)来控制Python安装( virtualenvwrapper )。

我在“%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社区版的鼠标右键菜单中运行/调试一个Django应用程序的UnitTests? 是我必须面对的痛苦问题之一。

@ EDIT0

刚才我安装了virtualenvwrapper- win"C:\Install\x64\Python\3.5.3\python.exe" -m pip install virtualenvwrapper-win 。 运行mkvirtualenv ,通过其完整路径或通过在%PATH%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参数) 。