在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个python版本、不同版本的包,而virtualenv就是解决这种情况的,virtualenv通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,不同项目之间相互不干扰。
virtualenv的关键是隔离(Isolation)。 它能创造一个包含特定版本的Python环境,并且确保Python软件包非常干净。 每个虚拟环境中添加的框架或包不互相影响。即这个环境的特点有二:
Python版本固定。即使系统的Python升级了,虚拟环境中的仍然不受影响,保留开发状态。
所有Python软件包,都只在这个环境生效。
下面介绍在win10中使用python虚拟环境 virtualenv。
1)安装virtualenv
按下win + R组合键,出现“运行”对话框:
将cmd窗口。
在cmd窗口中,输入
pip3 install virtualenv
参见下图:
2)创建一个目录,在此目录中一套独立的Python运行环境
在此我使用目录D:\PythonProject
先创建这个目录:
md D:\PythonProject
切换到这个目录:
cd /d D:\PythonProject:
创建名为venv的虚拟环境
virtualenv venv
参见下图:
新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境。参见下图:
3)启用——激活并切换到virtualenv环境使用:
venv\Scripts\activate
参见下图:
其中(venv) 表示进入了venv虚拟环境,若用pip安装的可执行文件,都使用的是venv下的。
创建并激活virtualenv环境后我们就可以正常的方式来使用和安装python安装包及模块了。使用python xxx.py来保证在隔离环境下执行python文件,使用以往同样的方式来执行python操作。参见下图:
查看虚拟环境下安装的所有的包:
pip list
小结:以后,可以这样启用这个名为venv 的virtualenv环境:
先切换到安装目录
cd /d D:\PythonProject
再启动名为venv启用virtualenv环境:
venv\Scripts\activate
4)退出出当前的venv虚拟化环境:
Deactivate
参见下图:
5)删除虚拟环境:直接删除对应的虚拟环境文件夹即可,同时也删除了对应安装的包。
集成到开发环境
下面介绍在PyCharm中使用virtualenv虚拟环境。
PyCharm的安装参见
https://blog.csdn.net/cnds123/article/details/107565327
PyCharm中使用virtualenv虚拟环境:
1)对新建项目
File-->New Project--> 出现如下图,单击“Project Interpreter:New Virtualenvt environmen”, 参见下图:
选择Virtualenv
2)对已有项目
打开Project Interpreters页面:File--> setting-->Project:项目名-->Project Interpreters,参见下图:
说明:
在Location中填写新环境的文件目录;
在Base interpreter下拉框中选择Python解释器;
选中Inherit global site-packages可以使用base interpreter中的第三方库,不选将和外界完全隔离;
选中Make available to all projects可将此虚拟环境提供给其他项目使用。
new environment using和existing interpreter介绍
new environment using是为项目创建一个新的环境,这里有三个选择:Virtualenv,Pipenv,Conda。参见下图:
☆Virtualenv:是虚拟环境的意思,它在项目文件下创建一个独立虚拟环境(venv),他是一款工具,在pycharn中集成了。它会创建一个独立的虚拟环境,可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter程序间,避免了不同Python程序间的互相影响,独立的使用一个Python解释器,不会与本地解释器产生影响。
☆Pipnev:包管理工具——是一种Python虚拟环境管理工具,它集成了virtualenv, pip和pyenv三者的功能。参考:https://www.jb51.net/article/184810.htm。
☆Conda:在conda环境下创建一个虚拟环境。
existing interpreter情况:
已经存在的解释器,可选择得有4种。参见下图:
☆Virtualenv Environment,可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响,解决的库依赖和版本依赖。
☆Conda environment,如果你的电脑中安装了Anaconda软件,也可以使用Anaconda里面附带安装的Python解释器。和使用System interpreter类似。
☆System interpreter,选择系统里面安装的Python作为解释器。
☆Pipenv Environment,包管理工具。