跳过正文
  1. 文章/
  2. Python/
  3. 虚拟环境/

2、pipenv

·1397 字·3 分钟· loading · loading · ·
Python 虚拟环境
GradyYoung
作者
GradyYoung
虚拟环境 - 点击查看当前系列文章
§ 2、pipenv 「 当前文章 」

pipenv
#

pipenv 是 Python 项目的依赖管理器,与 Node.js 的 npm、Ruby 的 bundler 类似,在协作项目中优势明显,能简化依赖管理

pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt),pipenv 在易用性上要简单很多,同时增加了 lock 文件,能更好的锁定版本。如果没有特殊要求可以 pipenv 直接使用 lock 的版本,开发又可以小步迭代,实现依赖的稳步升级。

  • 自动关联项目相关的 virtualenv,能够快速的加载 virtualenv。
  • 提供的pipenv替代pip并自带一个依赖清单Pipfile,和依赖锁定Pipfile.lock
  • Pipfile除了依赖清单还支持固定pypi源地址,固定python版本。
  • Pipfile还支持dev依赖清单。pipenv install的包会强制使用Pipfile中的源。
  • 使用pipenv graph命令可以看到依赖树。
  • 可以直接切换python2和python3。

安装
#

pip install pipenv

输入命令pipenv --version来查看是否安装成功,如果安装成功则会显示当前模块的版本编号

更改pipenv的虚拟环境存放目录
#

但是默认情况下Pipenv会统一管理所有的虚拟环境,默认路径如下

  • Windows默认路径: C:\Users\Administrator.virtualenvs\
  • Linux或MacOS默认路径:~/.local/share/virtualenvs/

设置方式如下:

  • 设置环境变量统一存放:创建 WORKON_HOME 环境变量,其值设置为存放的具体路径且路径必须已经创建好,如其值为D:\virtualenvs\,保存成功后新创建虚拟环境即可,即后续所有创建的虚拟环境都存在此路径下面。
  • 设置环境变量存放在各自的项目中:创建 PIPENV_VENV_IN_PROJECT 环境变量,将其值设置为1,则项目的虚拟环境,会在项目的根目录自动生成.venv 存放。

常用命令
#

  • pipenv shell:进入虚拟环境(检测当前项目对应的虚拟环境是否存在,不存在则自动创建项目所需要的环境)
  • pipenv install:虚拟环境中安装包(检测当前项目对应的虚拟环境是否存在,不存在则自动创建项目所需要的环境)
  • pipenv install 包名:安装虚拟环境包到默认环境
  • pipenv install 包名 --dev:安装虚拟环境包到开发环境
  • pipenv uninstall 包名:卸载虚拟环境包,会将该包与依赖包全部卸载
  • pipenv --where:列出本地工程的路径
  • pipenv --venv:列出虚拟环境路径
  • pipenv --py:列出虚拟环境的python可执行文件
  • pipenv lock:生成 Pipfile.lock 文件
  • exit:退出虚拟环境
  • pipenv --rm:删除虚拟环境

Pipfile文件
#

[[source]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true
name = "pypi"
 
[packages]
requests = "*"
pyyaml = "*"
Django = "*"
 
[dev-packages]
pytest = "*"
 
[requires]
python_version = "3.7"
 
[scripts]
django = "python manage.py runserver 0.0.0.0:8080"
  • source :用来设置仓库地址,即指定镜像源下载虚拟环境所需要的包
  • packages :用来指定项目依赖的包,可以用于生产环境和生成requirements文件
  • dev-packages :用来指定开发环境需要的包,这类包只用于开发过程,不用与生产环境。
  • requires :指定目标Python版本
  • scripts :添加自定义的脚本命令,并通过 pipenv run + 名称 的方式在虚拟环境中执行对应的命令 。
    • pipenv run django :相当于 执行命令 pipenv run python manage.py runserver 0.0.0.0:8080

Pipfile 文件可以复制到其他项目内,通过执行pipenv install命令, 根据这个 Pipfile 文件生成虚拟环境和依赖包的安装。

Pipfile.lock文件
#

通过hash算法将包的名称和版本,及依赖关系生成哈希值,保证包的完整性,除修改镜像源,非必要情况不对该文件进行修改。

虚拟环境 - 点击查看当前系列文章
§ 2、pipenv 「 当前文章 」