python的虚拟环境管理

一,虚拟环境主要目的是为了给不同的工程创建相互独立的运行环境

  在虚拟环境下,每一个工程都有自己的依赖包,彼此独立与其他的环境无关。

    引入virtualenv

    1,pip install 安装virtualenv

    2,pip安装虚拟环境管理包 virtualenvwrapper-win

    3,在本地硬盘上创建一个存放虚拟环境的目录,比如说 F://virtualenv

    4,配置环境变量 变量名 WORKON_HOME 值则为第3步中设置的路径

  之后在cmd中敲workon来检查自己的环境配置是否成功

    虚拟环境的常用命令

    mkvirtualenv -p python(指定的python版本 django_py2(虚拟环境名称。

    ex: mkvirtualenv -p python3 django_py2

    创建一个虚拟环境之后会自动进入创建的虚拟环境,退出当前的虚拟环境使用deactivate

  判断是否成功进入虚拟环境的标志是路径夫前面是否有虚拟环境的名称。

    -p 指定环境解释器,当电脑中有多版本python环境的时候进行指定

    workon 虚拟环境名,直接进入某个虚拟环境

    workon ,列出所有的虚拟环境

    deactivate 退出当前的虚拟环境,

    mkvirtualenv name, 创建虚拟环境,name参数为自定义的环境名

    rmvirtualenv name, 删除虚拟环境,name参数为要删除的目标环境

    虚拟环境中包的安装:

      进入虚拟环境后进行,pip install 包名来进行安装

 二,更完善的虚拟环境管理器的引入

  pipenv的安装和使用,pipenv继承了pip,virtualenv两者的功能

  过去使用virtualenv管理requirements.text文件可能会有问题,pipenv使用pipfile,piplock

这两个文件前者用来记录项目依赖包列表,后者记录了固定版本的详细以来包列表,查看以来关系十分方便。

  安装 

    pip install pipenv

  创建虚拟环境

  1,创建文件夹 mkdir py3env,

  2,cd 进入 py3env

  3,初始化虚拟环境 pipenv install 注意,此步骤中,如果机器中存在多个python环境可能会出现问题。

   pipenv install 此命令既可以用来在虚拟环境中安装第三方模块,也可以用来进行虚拟环境初始化

   pipenv install 模块名 --dev    , --dev代表开发环境,后面会提到

   pipfile,pipfile.lock 用来记录项目以来包列表,之后可以通过命令快速恢复环境

   恢复方法则是将上述两个文件拷到目标目录直接运行 pipenv install即可。

   pipenv graph 查看安装的第三方模块,

   开发环境下的包,是不会直接恢复进去的,除非使用pipenv install --dev

   pipenv uninstall 包名,从虚拟环境中卸载第三方模块。

  pipenv的常用相关命令:

  pipenv --rm 删除环境

  pipenv --where 列出本地工程路径

  pipenv --venv 列出虚拟环境路径

  pipenv --py 列出虚拟环境的python可执行文件

  pipenv --graph 查看包依赖

  pipenv lock 生成lock文件

  pipenv --shell 激活虚拟环境

  exit 推出虚拟环境

pipenv只能操作当前路径下的虚拟环境,virtualenv可操作所有目录下的。

三,两种环境管理器的依赖导入与导出

  requirements.txt 文件

  里面记录了当前程序的所有依赖包和版本号,可以快速在另一个环境上重新构建项目所需要的运行环境依赖。

  virtualenv 下的依赖导入与导出。

  导出当前环境到requirements.txt

  pip freeze > requirements.txt  (文件名可自定义,自动生成在当前目录中

  使用requirements.txt 来恢复环境

  pip install -r requirements.txt 

  pipenv下恢复环境

  pipenv install 会自动按照pipfile,pipfile.lock来进行恢复

原文地址:https://www.cnblogs.com/addicated/p/13152021.html