Windows下使用python虚环境

来源:互联网 发布:知乎 大野智 编辑:程序博客网 时间:2024/06/04 23:24

本文使用的版本是python 2.7 64位。

python安装目录:c:\python27,程序目录是:c:\python27\scripts。

虚环境的作用是让每一个项目运行在独立的环境中,避免不同项目之间的组件使用时的冲突。

比如,某个项目是用python2.7开发,引用的是2.7的库,而另一个项目是python3.5,引用的是3.5的库,如果在同一个环境下很容易导致冲突,现在有了虚环境,每个项目都在自己的环境中运行,引用自己对应python版本的库,避免导致相互冲突。

一、安装虚环境

安装用的是pip,把虚环境安装到当前系统中。

C:\Users\Administrator>cd c:\python27\scriptsc:\Python27\Scripts>pip install virtualenvCollecting virtualenv  Using cached virtualenv-15.1.0-py2.py3-none-any.whlInstalling collected packages: virtualenvSuccessfully installed virtualenv-15.1.0

二、构造虚环境

为一个已有的项目建一个venv目录,会复制一份完整的当前系统的python环境。

比如,现在在E:\Project目录下面,有一个项目是:my_project,要为这个项目创建一个虚环境,用virtualenv命令:

E:\project\my_project>c:\python27\scripts\virtualenv venvNew python executable in E:\project\my_project\venv\Scripts\python.exeInstalling setuptools, pip, wheel...done.

注意:要先切换到E:\Project\my_project目录,然后运行这个virtualenv命令,之后会看到在my_project目录中新增了一个子目录venv,目录中会有完整的python环境,里面会有 scripts、include、Lib等目录:

C:\Users\Administrator>e:E:\>cd e:\project\my_project\venve:\project\my_project\venv>dir 驱动器 E 中的卷是 新加卷 卷的序列号是 F6F5-4ACA e:\project\my_project\venv 的目录2016/12/24 周六  23:18    <DIR>          .2016/12/24 周六  23:18    <DIR>          ..2016/12/24 周六  13:10    <DIR>          Include2016/12/24 周六  23:17    <DIR>          Lib2016/12/24 周六  23:18    <DIR>          Scripts2016/12/24 周六  23:17    <DIR>          tcl2016/12/24 周六  23:18                60 pip-selfcheck.json               1 个文件             60 字节               6 个目录 336,256,745,472 可用字节e:\project\my_project\venv>

现在系统中一共有2个python,一个是 c:\python27\python.exe,另一个就是刚才创建的虚环境中的是 E:\project\my_project\venv\Scripts\python.exe,当然还有其他程序也复制了一份。


三、使用虚环境

接下来在虚环境中安装tornado:

E:\project\my_project\venv\Scripts>pip install tornadoCollecting tornado  Downloading tornado-4.4.2.tar.gz (460kB)Successfully built tornadoInstalling collected packages: six, singledispatch, certifi, backports-abc, tornadoSuccessfully installed backports-abc-0.5 certifi-2016.9.26 singledispatch-3.4.0.3 six-1.10.0 tornado-4.4.2

用虚环境运行python程序:

E:\project\my_project\venv\Scripts>python e:\r.py这是一个python程序:Hello world!

更加简便的使用方式是进入到项目目录,然后用activate命令启动虚环境,之后就不用显式的调用虚环境scripts文件夹中的命令(其实和上面的方式没有区别,都得先进入到E:\project\my_project\venv\Scripts目录):

C:\Users\Administrator>e:E:\>cd E:\project\my_project\venv\ScriptsE:\project\my_project\venv\Scripts>activate(venv) E:\project\my_project\venv\Scripts>python E:\r.py这是一个python程序:Hello world!(venv) E:\project\my_project\venv\Scripts>pip install tornadoRequirement already satisfied: tornado in e:\project\my_project\venv\lib\site-packagesRequirement already satisfied: singledispatch in e:\project\my_project\venv\lib\site-packages (from tornado)Requirement already satisfied: certifi in e:\project\my_project\venv\lib\site-packages (from tornado)Requirement already satisfied: backports-abc>=0.4 in e:\project\my_project\venv\lib\site-packages (from tornado)Requirement already satisfied: six in e:\project\my_project\venv\lib\site-packages (from singledispatch->tornado)(venv) E:\project\my_project\venv\Scripts>
这里的(venv) 就表示在虚环境中执行的命令。

如果要退出虚环境,可以用deactivate命令:

(venv) E:\project\my_project\venv\Scripts>deactivateE:\project\my_project\venv\Scripts>

这样就退出虚环境,回到了cmd命令行。

四、验证环境

这里需要注意的是,上面安装的tornado模块,并不是在当前系统中安装的,而是在虚环境中安装的,如果在当前环境引入tornado会报错:

C:\Users\Administrator>c:\python27\pythonPython 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import tornadoTraceback (most recent call last):  File "<stdin>", line 1, in <module>ImportError: No module named tornado>>>
而在虚环境中引入tornado,就不会报错,因为tornado是安装在虚环境中的:

E:\project\my_project\venv\Scripts>pythonPython 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import tornado>>>

2 0
原创粉丝点击