window下使用virtualenv

---

window下使用virtualenv

---

要在windows用 virtualenv, 网上多是在linux下的教程, 所以总结了一下.  virtualenv zip包本身包括easyinstall和pip包, 所以无需先准备这两个安装工具. 另外virtualenv算的上是一个绿色软件, 无需安装即可直接创建python虚拟环境. 

参考文章:
1. virtualenv 和 distribute
http://www.lyc.name/2011/05
2.   virtualenv 搭建虚拟环境
 http://www.cnblogs.com/kym/archive/2011/12/29/2306428.html
3. PyCharm 和 virtualenv 整合开发
http://www.intellij.org.cn/blog/?p=1208

我总结的步骤如下:
1. 系统配置: 不要将 c:\python27 和 c:\python27\Scripts\ 加到操作系统的环境变量Path中.  以防止将来和虚拟环境搞混淆. 

2. 安装 virtualenv. 下载 virtualenv-1.7的tar.gz包, 并解压,  使用 cmd 跳转到 virtualenv 的setup.py 目录. 使用如下命令安装 virtualenv    
c:\virtualenv-1.7\virtualenv-1.7>c:\python27\python.exe setup.py install
上面的命令其实是使用调用setuptools来安装的.  在安装成功后, c:\python27\Scripts 目录将多了 virtualenv.exe 文件
下载的地址为: http://pypi.python.org/pypi/virtualenv#downloads

如果没有在python主环境中安装setuptools, 也可以使用 python virtualenv.py 来直接创建虚拟环境, 纯绿色软件. 


4. 创建虚拟环境, 比如要在c:\python_env目录创建虚拟环境 mytest, 使用如下命令:
c:\python_env>c:\python27\Scripts\virtualenv.exe mytest
这个命令成功的话, 会在目录c:\python_env\mytest建立一套 python的运行环境. 同时  c:\python_env\mytest\Scripts 目录下会多了2个bat文件 , activate.bat 和 deactivate.bat.  

值得一提的是, virtualenv创建的虚拟环境, 已经附带了python最重要的2个安装工具, setuptools和pip.  如果在创建虚拟环境的时候, 使用了--distribute 选项的话, 附带的安装工具为Distribute和pip.  pip是将来是主流, 推荐使用这个安装工具. 

5. 使用新建的 mytest 虚拟环境 
要使用 mytest 这个环境,  调用 c:\python_env\mytest\Scripts\activate.bat 即可. 我的一个发现 刚生成的deactivate.bat 是Unix的换行符,  而 activate.bat 却是Windows的换行符, 应该是 virtualenv 的bug吧. 为了保险, 我们可以将这两个bat文件转成 windows 格式. 

 在 cmd 调用完  c:\python_env\mytest\Scripts\activate.bat 之后, 不关闭 cmd, 直接输入命令python.exe, 运行的即是 mytest 环境下的 python, 而不是 c:\python2.7\python.exe. 说明虚拟环境已经创建成功了. 
 
6. 在虚拟环境中安装其他python 包. 
在 cmd 调用完  c:\python_env\mytest\Scripts\activate.bat 之后, 不关闭 cmd, 在这个 cmd 中,  安装新的 python 包, 将安装到虚拟环境中. 

7. 在 Eclipse pydev 中使用 mytest 虚拟环境
  在 pydev 中, 使用 new Interpretor向导,  设置解释器为 c:\python_env\mytest\Scripts\python.exe, 按下OK后, 按照pydev提示配置pythonpath即可. 我配置的最后结果为: 所有的目录都和 mytest 相关, 除了C:\Python27\Lib. 
 

 
 
 
标签:  工具Python

你可能感兴趣的:(virtualenv)