在windows下使用VirtualEnv

virtualenv是python的虚拟环境,可以在同一台PC隔离不同的python开发环境。virtualenv可以创建一个隔离的python环境(沙盒)。使用沙盒的优点:

  • 解决库之间的版本依赖,比如同一系统上不同应用依赖同一个库的不同版本。
  • 解决权限限制,比如你没有root权限。
  • 尝试新的工具,而不用担心污染系统环境。

下面是一个在Windows下使用virtualenv的范例和步骤:

1 先装一个2.7版本的python,和3.x版本的python,和3.5版本的python,安装目录如下。注意此时不要将py2的路径加到系统环境变量中,如果添加了需要删除,这样才不会和virtualenv的路径发生冲突

C:>Python27\ 
C:>Python35\

2 用py2.7的pip安装virutalenv

C:\Python27\Scripts\pip.exe install virtualenv

3 建立两个目录,分别作为py2和py3的工作环境

C:\tmp\py2_env 
C:\tmp\py3_env

4 用virtualenv为两个工作目录创建虚拟环境

C:>Python27\Scripts\virtualenv.exe -p C:\Python27\python.exe c:\tmp\py2_env 
C:>Python27\Scripts\virtualenv.exe -p C:\Python35\python.exe c:\tmp\py3_env

5 到虚拟环境c:\tmp\py2_env下工作 
(1) 切换到Script路径(激活、关闭虚拟环境的工具在这里)

C:\tmp\py2_env>cd Scripts

(2) 执行activate,激活虚拟环境

C:\tmp\py2_env\Scripts>activate

(3) 在虚拟环境下执行python命令,可见打开的是Python2.7的环境(还可以在这里运行pip等py2的工具)

(py2_env) C:\tmp\py2_env>python 
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec…

(4) 用pip为该虚拟环境安装特定版本的依赖库

(py2_env) C:\tmp\py2_env>pip install -r requirements.txt

  其中requirements.txt内容为:
  pytz==2015.7
  requests==2.9.1

(5) 执行deactivate.bat退出虚拟环境

(py2_env) C:\tmp\py2_env\Scripts>deactivate.bat

5 到虚拟环境c:\tmp\py3_env下工作

(1) 执行activate,激活虚拟环境

C:\tmp\py3_env\Scripts>activate

(2) 在虚拟环境下执行python命令,可见打开的是Python3.5的环境

(py3_env) C:\tmp\py3_env\Scripts>python 
Python 3.5.1 (v3.5.1:37a07cee5969, Dec…

(3) 执行deactivate.bat退出虚拟环境

(py3_env) C:\tmp\py3_env\Scripts>deactivate.bat

6 如上所述,激活不同的虚拟环境,就能在虚拟环境中使用不同版本的python和不同的依赖,且不同虚拟环境之间是互相独立的。

VirtualEnv可以方便的解决不同项目中对类库的依赖问题。这通常是通过以下方式实现的:首先将常用的类库安装在系统环境中;然后为每个项目安装独立的类库环境。这样子可以保证每个项目都运行在独立的类库环境中。


本文简要的介绍如何方便的在Windows环境下使用VirtualEnv进行开发工作。

1、首先在系统中安装virtualenv:
在windows下使用VirtualEnv_第1张图片

2、构造项目目录,为项目安装虚拟环境:
首先创建了项目文件夹myproject,然后在该文件夹中安装了虚拟环境env。
在windows下使用VirtualEnv_第2张图片


3、启动虚拟环境,安装所需类库:
在windows中虚拟环境的启动使用命令:your_env_dir\Scripts\activate
默认情况下,virtualenv已经安装好了pip。在启动虚拟环境后直接使用pip install 命令就可以为该虚拟环境安装类库:
在windows下使用VirtualEnv_第3张图片


4、在虚拟环境中可以进行运行脚本等操作:
脚本代码如下:
在windows下使用VirtualEnv_第4张图片
在虚拟环境中运行该脚本:
在windows下使用VirtualEnv_第5张图片


5、离开虚拟环境,使用deactivate命令:
在windows下使用VirtualEnv_第6张图片


6、在系统环境中,我们并没有安装flask类库,可以对比在系统环境中和虚拟环境中的脚本运行效果:
在windows下使用VirtualEnv_第7张图片


7、总结:
virtualenv虚拟环境为每个项目隔离了一套运行类库,不同的项目在各自的虚拟环境中使用不同的类库,避免了将所有类库都安装到系统环境中导致的不同项目需要不同(版本)类库的问题,项目与项目之间的类库依存不再成为问题。


参考文献:
1、Python脚本来自于: https://www.shiyanlou.com/courses/document/259
2、《virtualenv的安装和使用》: http://my.oschina.net/lpe234/blog/343639


你可能感兴趣的:(python)