Python做为程序员的周末语言平时用的比较多,常常会碰到个问题,就是怎么解决不一样环境下项目依赖的问题,并且python也存在2.x和3.x各类不兼容的状况,因此用虚拟环境venv能够仅维护项目依赖的模块,使得各自应用有本身独立的环境,相互隔离,相似于虚拟机环境,与宿主机和其余虚拟机环境隔离。python
Python3.3 以上的版本经过 venv 模块原生支持虚拟环境,能够代替 Python 以前的 virtualenv。程序员
聊完了好处,下面讲讲如何使用。以目前使用的python3.x环境为例。shell
在工做目录执行以下命令:windows
$ /opt/soft/python36/bin/python3 -m venv .
执行完后会生成以下文件:python3.x
执行一下命令激活虚拟环境bash
# Linux、mac、Unix $ source ./bin/activate # windows cms C:> xxx/Scripts/activate.bat # windows powershell PS C:> xxx/Scripts/Activate.ps1
激活环境后用pip正常安装包便可,以下图网络
使用以下命令便可将依赖模块信息导出ui
$ pip freeze > requirements.txt
若是新环境没有网络的条件下可使用以下命令直接导入依赖包进项目:3d
$ pip download -d packages/ -r requirements.txt
而后离线安装:code
$ pip install --no-index --find-links=packages/ -r requirements.txt
不过这种方式仍是有些弊端,好比python2.x python3.x不兼容问题,还有些模块内部实现是c写的,不一样机器可能要从新编译。