Windows下使用python虚环境

本文使用的版本是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\scripts

c:\Python27\Scripts>pip install virtualenv
Collecting virtualenv
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0

二、构造虚环境

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

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

E:\project\my_project>c:\python27\scripts\virtualenv venv
New python executable in E:\project\my_project\venv\Scripts\python.exe
Installing 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\venv

e:\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>          Include
2016/12/24 周六  23:17    <DIR>          Lib
2016/12/24 周六  23:18    <DIR>          Scripts
2016/12/24 周六  23:17    <DIR>          tcl
2016/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 tornado
Collecting tornado
  Downloading tornado-4.4.2.tar.gz (460kB)
Successfully built tornado
Installing collected packages: six, singledispatch, certifi, backports-abc, tornado
Successfully 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\Scripts

E:\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 tornado
Requirement already satisfied: tornado in e:\project\my_project\venv\lib\site-packages
Requirement 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>deactivate
E:\project\my_project\venv\Scripts>

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

四、验证环境

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

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

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值