Python 虚拟环境 virtualenv
Posted 技术之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 虚拟环境 virtualenv相关的知识,希望对你有一定的参考价值。
再不点技术之路关注,机会就要飞走了哦
简介
virtualenv
是一个创建独立的Python环境的工具。
如果我们将所有的第三方包都安装在site-packages
目录下,假设某工程A,依赖某个包Libxxx的版本V1.0,而另外一个工程B,则依赖该包的版本V2.0,那么这两个工程可能将不能同时满足条件;
或者我们仅仅想安装某个第三方包,而不想影响本机的环境以及已经部署的工程;
或者我们甚至根本没有权限在全局的site-packages
安装包;
那么这个时候virtualenv
就能发挥作用了。
它能解决依赖包、版本或者权限的一些问题。它创建的独立Python环境提供有它独立的目录,并提供了必要的执行文件,同时默认安装了pip
。
安装
要安装virtualenv
,当然,前提是你已经有了Python环境,如何安装Python,我们在这里就不讨论了(可以参考官方文档:https://docs.python.org/2/using/index.html),我们默认已经有了Python环境,以及`pip`工具,如果这个都没有,那还是先利用搜索引擎查一查如何安装这个吧,以Windows环境下示例检验一下
C:\Users\Administrator>python --version Python 2.7.13 C:\Users\Administrator>pip -V pip 9.0.1 from c:\python27-32\lib\site-packages (python 2.7)
然后我们可以很简单的通过pip
安装virtualenv
,如下
pip install virtualenv
安装完成后可以验证一下
C:\Users\Administrator>virtualenv --version15.1.0
创建虚拟环境
创建独立的虚拟环境,需要先创建一个目录,然后指定该目录作为虚拟环境的目录,比如我们在F盘创建一个v_env
目录
F:\>mkdir v_env
这样只是个人习惯,当然,如果你不创建该目录,直接执行下面的命令,也会在当前目录创建该目录
然后再执行下述命令,创建名叫v_env
的虚拟环境
F:\>virtualenv --no-site-packages v_env New python executable in F:\v_env\Scripts\python.exe Installing setuptools, pip, wheel...done. F:\>
样就表示创建完成了,其中的--no-site-packages
选项表示不复制我主机目前已经安装的包,这样创建的虚拟环境就只会包含setuptools
、pip
以及wheel
三个包。
安装完成后,v_env目录下就会多了如下几个东西
开启虚拟环境
我们进入v_env目录,并执行Scripts\activate
即可开启该虚拟环境(Mac环境下为bin/activate
),如下
F:\>cd v_env F:\v_env>Scripts\activate (v_env) F:\v_env>
我们可以看到命令提示符前面多了(v_env)
的东西,即表明正在该虚拟环境中。
此时我们可以使用pip list
查看,包含了哪些包
(v_env) F:\v_env>pip -list
输出如下
安装第三方包
我们检查一下该虚拟环境中的Lib/site-packages
下的东西
然后我们在该虚拟环境中安装一个之前使用到的openpyxl
包
(v_env) F:\v_env>pip install openpyxl
安装成功后,使用pip list
查看一下
发现多了openpyxl
、et-xmlfile
、jdcal
等包,然后我们再检查一下Lib/site-packages
目录
这样说明确实安装成功了,且安装到我们了虚拟环境中,不影响主机的环境。
退出虚拟环境
因为我们执行了Scripts\acitvate
(Mac为bin/activate
)后,virtualenv
都会将该虚拟环境下的Scripts
(或bin
)目录添加到环境变量中,故我们需要退出虚拟环境,直接执行deactivate
命令即可
(v_env) F:\v_env>deactivate F:\v_env>
命令提示符前没有(v_env)
表明现在是主机的环境了。
封面图片来源:http://www.polayoutu.com/collections/7/115_%E9%83%91%E6%98%8E%E7%A5%81
以上是关于Python 虚拟环境 virtualenv的主要内容,如果未能解决你的问题,请参考以下文章