Python虚拟环境管理 之 virtualenv 和 pipenv

Posted 七月的小尾巴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python虚拟环境管理 之 virtualenv 和 pipenv相关的知识,希望对你有一定的参考价值。

虚拟环境介绍

Python虚拟环境主要的目的就是为了给不同的工程创建互相独立的运行环境。在虚拟环境下,每一个工程都有自己的依赖包,而与其他的工程无关。不同的虚拟环境中通一个包可以有不同的版本。并且,虚拟环境的数量都没有限制,我们可以轻松的用 virtualenv 或者 pipenv等工具来创建多个虚拟环境。

virtualenv的安装和应用(windows)

  1. pip 安装 virtualenv
  2. pip安装虚拟换将管理包 vitualenvwrapper-win
  3. 创建一个存放虚拟环境的目录(建议命名为 .env 或者 .virtualenv)
  4. 配置环境变量(变量名:WORKON_HOME, 值:上面创建的目录路径)

常用的虚拟环境的命令

# 列出所有的虚拟环境
workon

# 进入指定虚拟环境
worken [name]

# 退出当前的虚拟环境
deactivate

# 创建虚拟环境
mkvirtualenv [name]

# 删除虚拟环境
rmvirualenv [name]

包安装:
虚拟环境中,安装对应的依赖包,进入虚拟环境直接pip install 进行安装

注:当我们电脑有多个解释器是,可以使用 mkvirtualenv -p python2 [name]指定解释器版本

但是mkvirtualenv有一个缺点,比如我们安装django环境之后想要卸载,他只会卸载django,而下载时自带的一些关于django相关的依赖,不会被删除。下面我们来介绍一个集成 pip 和 mkvirtualenv 两者的功能,且完成了两者的一些缺陷的环境管理工具 ---- pipenv。

pipenv的安装和使用

过去用 mkvirtualenv 管理 requirements.txt 文件可能会有问题,pipenv使用 Pipfile 和 Pipfile.lock, 前者用来记录项目依赖包的列列表,后者用来记录了固定版本的详细依赖包列表,查看依赖关系是十分方便。

支持Python2和Python3,mac、win、liunx在各个平台的命令都是一样的。
各个地方使用了哈希校验,无论安装还是卸载都十分安全。

安装命令

pip install pipenv

创建环境

# 如果install 后方未带参数,则默认创建环境,如果后放带了参数
# 如pipenv install request,则为安装request库
pipenv install


环境安装成功之后,我们的工程下会新增两个文件,这两个文件用作于记录我们的依赖包

下面我们来介绍一下Pipfile文件中的一些参数含义,下方是Pipfile文件中的内容

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "2.7"

  • url: 首先我们看到的就是url,这个默认是国外源的地址,这里我们将他改成国内源,这样安装会快一点。这里我给大家提供了几个国内镜像源的地址,大家可以自行更改,我选择的是清华大学的。

    清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
    阿里云:http://mirrors.aliyun.com/pypi/simple/
    豆瓣:http://pypi.douban.com/simple/
    
  • [dev-packages]: 这个是我们开发环境需要安装的依赖包,如果有些安装包我们想要在开发环境安装,可以在命令中安装时指向开发环境

    pipenv install django --dev
    

那么通常我们项目写完之后,会将代码上传到Linux服务器上面,我们可以再工程路径下,输入pipenv install安装所有的项目依赖包。(注意:开发环境的包是不会恢复进去,如果要恢复开发环境的依赖包,可以使用 pipenv install --dev

之前我们说过virtualenv的缺点是卸载包的时候,相关依赖包的不会被写在,pipenv可以处理这个问题,我们可以使用 pipenv uninstall [packname]

常用的 pipenv 管理模块和包命令

# 在虚拟环境中安装模块或者包,在安装是指定 --dev参数,则只安装到[dev-package]中
# 如果没有指定 --dev ,那么就会安装到 [package]中
pipenv install --dev request

# 卸载虚拟环境模块包
pipenv uninstall [package name]

# 查看安装包及依赖关系
pipenv graph

# 生成requirements.txt 文件
pipenv lock -r --dev > requestments.txt

# 通过requestments.txt 安装环境
pipenv install -r requirements.txt

# 删除虚拟环境
pipenv --rm

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

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

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

# 生成lock文件
pipenv lock

# 激活虚拟环境
pipenv --shell

# 退出虚拟环境
exit

以上是关于Python虚拟环境管理 之 virtualenv 和 pipenv的主要内容,如果未能解决你的问题,请参考以下文章

python之virtualenv

虚拟一个python环境之virtualenv

【Python入门】37.常用第三方模块之 创建虚拟环境virtualenv

Python之Windows版本安装virtualenv

python开发之virtualenv的使用

Python 杂记之 如何使用pyenv进行版本管理与如何使用virtualenv创建虚拟运行环境