virtualenv是一个创建Python 独立环境的包,
虚拟环境,就是借助虚拟机,docker来把一部分内容独立出来,我们把这部分独立出来的东西称作容器,在这个容器中,我们可以只安装我们需要的依赖包,而且各个容器之间互相隔离,互不影响,
virtualenv可以搭建虚拟且独立的python 运行环境,使得单个项目的运行环境与其他项目独立起来,是一个非常好的virtual python enviornment builder, 它最大的好处是,可以让每一个python项目单独使用一个环境,而不会影响python 系统环境, 也不会影响其他项目的环境,在这些环境里可以选择不同的python版本或者不同的packages, 并且可以在没有root权限的情况下在环境里安装新套件,互相不会产生任何的影响.
安装,virtualenv本质上是个python包,使用pip安装
pip install virtualenv
创建虚拟环境,注意需要自定义虚拟环境的名字(比如下面名字: TestEnv)
~$virtualenv TestEnv
New python executable in ~/TestEnv/bin/python
Installing setuptools, pip, wheel ...done.
默认情况下,虚拟环境中不包括系统的site-packages, 若要使用需要添加参数(--system-site-packages)
virtualenv --system-site-packages TestEnv
使用系统默认python 版本创建虚拟环境
virtralenv --no-site-packages test1_env
就可以在当前目录创建一个env目录,并会把python, setuptools和pip给装上
也可以自定义python版本创建虚拟环境
1. 安装需要版本的python
2. 指定virtualenv中的python版本,
virtualenv --no-site-packages --python=2.7 env
注意:
1.创建virtualenv虚拟环境之前,系统中必须安装有对应版本的python ,并且卸载之后当前虚拟环境就无效了,系统中可以同时存在python2 , python 3, 通过环境变量中的系统变量path(不是用户变量)控制cmd或者系统中使用哪个版本的python,哪个版本的路径在前面就优先使用哪个版本.
2.--no-site-packages表示不包括系统全局的python安装包,这样会令环境更干净
3.--python=python 2.7 指定python的版本
4. env是建立的虚拟环境名称
5. 没有安装python 2.7或者使用命令virtualenv --no-site-packages --python=python2.7 env会出现The executalbe python does not exist错误
6. 安装的库的位置在虚拟环境的env/Lib/site-packages/目录里,而不是在系统的python的Lib/site-packaages目录里,这样就知道哦啊为什么虚拟环境是分开的了吧
虚拟环境的激活,若想使用就需要激活创建的虚拟环境
进入虚拟环境目录,执行 source ./bin/activate激活虚拟环境
7. 安装项目运行依赖包
7.1 传统方式: pip install numpy
7.2 使用requirements.txt安装版本包(在requirements.txt文件里保存的都是各个依赖报的版本信息), pip install -r requirements.txt
若想卸载,pip uninstall -ry requirements.txt, 一个requirements.txt可以写成如下形式
numpy==1.14.6
tensorflow==1.13.1
tensorboard==1.13.1
tensorflow-gpu==1.13.1
opencv-python==3.4.2.17
cython==0.28.4
注意: requirements.txt中
1.包的安装顺序一般要进行手动调整,比如numpy 和scipy要在matplotlib前面安装
2. 如果想安装最新版本的, 就将后面的版本号==0.28.4什么的删除
8. 删除一个虚拟环境, 只需要删除它的文件夹
rm -rf venv