2017-05-24 79 views
2

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

我已经试过的this guidevirtualenv在Windows和this SO postvirtualenv具有特定类型的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' is not recognized as an internal or external command, operable program or batch file.

更新:我刚拿到这款使用简单virtualenv,而不是推荐mkvirtualenv命令,我以为是他们有我的包装的一部分工作安装。如果有人想帮助我了解发生了什么事情,并且如果有任何不使用包装的垮台,这将是写出答案的好方法。

回答

1

如果安装有多个的Python版本,这是最好的总是指定完整路径(可以肯定的),而不是依靠环境变量(至少这是我如何做到这一点):

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

我没有mkvirtualenv“%PYTHON_INSTALLATION_DIR%\脚本”(如“C:\安装\ 64 \ Python的\ 3.5.3 \脚本”)文件夹,但(这是我 “制作” 现在的例子):

  • "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是SOOOO容易得多),但至少它是安全的。无论如何,在设置虚拟环境之后,您可以调整您的环境(%PATH%),因此您不必指定完整路径。

我注意到您的评论而写作,我必须说,PyCharm专业版)是的Django工作的一个很好的工具(实际上与的Python一般的事)。如果另一方面,你去社区版它不是很好(如预期)。 [SO]: Run/Debug a Django application's UnitTests from the mouse right click context menu in PyCharm Community Edition?是我不得不面对的痛苦问题之一。

@ EDIT0

刚才我安装virtualenvwrapper- 赢得"C:\Install\x64\Python\3.5.3\python.exe" -m pip install virtualenvwrapper-win。运行mkvirtualenv,无论是由它的完整路径或通过在%PATH%mkvirtualenv a)将它的父文件夹中,得到相同的错误:

'python.exe' is not recognized as an internal or external command, operable program or batch file.

它创建的VENV下%USERPROFILE% \ Envs)。所以错误是良性的。反正它可以固定有两种方法:

  • 设置%PYTHONHOME%
  • %添加路径python.exe PATH%

,我做了一个额外的步骤,将%WORKON_HOME%设置为我想要我的VEnvs所在的文件夹。请注意,环境变量必须持久保存(因为我只是为了测试目的而设置的,所以我只将它们设置在我用于此任务的控制台上),否则必须在每次需要使用这些控制台时设置这些变量工具。

workon后,lsvirtualenv工作就像一个魅力(当然,不是一样大,在LNX,但足够接近)。

注意(约mkvirtualenvV1.2.1):它会使用默认python.exe(见上文),作为基础的新VENV,它并不像灵活virtualenv.exe(它接受-p/--python参数)。

+0

我认为你写的会起作用,我对你的答案赞不绝口。请检查我刚添加到我的问题作为编辑的更新。我在10分钟前就开始工作了,但我不确定为什么本教程推荐的包装不起作用,或者如果我未使用它,导致将来出现问题。如果您对此有任何了解,请将其添加到您的答案中,我将接受它作为解决方案。是的,我同意这是一个很好的IDE,但IDE与问题/答案没有任何关系。即使这样做,被迫使用一些特定的IDE也会受到限制)。 –

+0

不使用_virtualenvwrapper_,应该对未来没有负面影响,因为它是对_virtualenv_的简单包装。我记得_Lnx_ + _Django_“era”这个'workon'功能真的很棒(使用_TAB_从命令行中“浏览”_VEnv_名称,就像它们是文件/文件夹一样)。不过,我无法在_Win_上做同样的事情(我也必须说我没有很努力地尝试)。 – CristiFati

+0

非常感谢;我在'virtualenvwrapper-win'上解决方案 –

相关问题