Python多环境管理神器(pipenv)

pipenv是一款结合pip和virtualenv的Python包管理工具,通过Pipfile实现协同开发。本文详细介绍了pipenv的安装、虚拟环境管理、包管理、环境变量配置、与requirements.txt的兼容性及优缺点分析,旨在帮助开发者更高效地管理Python开发环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pipenv

参考官网: Pipenv: Python Dev Workflow for Humans — pipenv 2022.1.9.dev0 documentation

pipenv 是一款比较新的包管理工具,其借鉴了 javascript 的 npm 和 PHP 的 composer 等理念,通过一个依赖描述文件 Pipfile 来安装和管理依赖,以达到协同开发的目的。如果你熟悉 npm 或者 composer 的话,那 pipenv 正合你胃口。pipenv 其实整合了 pip 和 virtualenv 等库,在其上推出了更便捷的使用方式。

1、安装pipenv

直接使用pip命令安装

pip3 install pipenv

设置命令行的自动补全功能

如果使用的bash shell,请将以下代码添加到 .bashrc 或 .bash_profile 文件内:

eval "$(pipenv --completion)"

参考: Pipenv详解_Bossen的学习历程-优快云博客_pipenv

命令详解:

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  --where             输出项目根目录相关信息
  --venv              输出virtualenv相关信息
  --py                输出Python解释器相关信息
  --envs              输出环境变量选项
  --rm                删除virtualenv
  --bare              最小化输出
  --completion        命令自动补全
  --man               显示man页面
  --three / --two     在创建virtualenv时使用Python3或Python2
  --python TEXT       指定创建virtualenv时使用的具体的Python版本
  --site-packages     为virtualenv启用site-packages [env变量:PIPENV_SITE_PACKAGES]
  --clear             清除缓存(pipenv,pip和pip-tools)[env变量:PIPENV_CLEAR]
  --pypi-mirror TEXT  指定一个PyPI镜像
  --version           显示版本信息并退出
  -h, --help          显示帮助信息并退出


使用示例:
   创建一个项目,并明确指定使用Python3.7:
   $ pipenv --python 3.7

   删除项目的virtualenv (inferred from current directory):
   $ pipenv --rm

   为项目安装所有依赖项 (including dev):
   $ pipenv install --dev

   创建包含pre-releases的lockfile文件:
   $ pipenv lock --pre

   将已安装的依赖项显示为图表:
   $ pipenv graph

   检查已安装的依赖项是否存在安全漏洞:
   $ pipenv check

   安装一个本地的setup.py到你的虚拟环境或Pipfile:
   $ pipenv install -e .

   使用原生的pip命令:
   $ pipenv run pip freeze

Commands:
  check      根据 Pipfile 中提供的PEP 508标记检查安全漏洞
  clean      卸载所有 Pipfile.lock 未指定的包
  graph      显示当前安装的依赖项的关系图信息
  install    如果未指定要安装的包,则会安装 Pipfile 中的所有包,否则,只安装指定的包
  lock       生成 Pipfile.lock 文件
  open       在编辑器中查看给定的模块
  run        运行virtualenv中已安装的命令
  shell      在virtualenv内启动一个shell
  sync       安装 Pipfile.lock 中指定的所有的包
  uninstall  卸载一个指定的包并将其从 Pipfile 中移除
  update     先运行lock命令,在运行sync命令

2、pipenv虚拟环境管理

2.1、虚拟环境创建与激活

创建虚拟环境

# 进入项目目录:
[root@ops-130 data]# mkdir myproj10
[root@ops-130 data]# cd myproj10/
[root@ops-130 myproj10]# ls
[root@ops-130 myproj10]# pipenv install

上面的命令会自动在~/.local/share/virtualenvs/目录下创建虚拟环境目录,

名字为一个当前目录名加一串随机字符串的虚拟环境目录。这里是myproj10-740tHe3W

创建过程如下图:

下面多了两个文件,为Pipfile和Pipfile.lock,用于存放依赖包名的文件。

类似php里的composer.json和composer.lock。

[root@ops-130 myproj10]# ls
Pipfile  Pipfile.lock

查看虚拟环境

[root@ops-130 myproj10]# pipenv --venv
/root/.virtualenvs/myproj10-740tHe3W

我们的虚拟环境目录在/root/.virtualenvs/下面,是因为我们之前设置过环境变量

export WORKON_HOME=$HOME/.virtualenvs

激活虚拟环境:

cd /data/myproj10
pipenv shell

激活后如下图:

注意:上面激活虚拟环境的时候,出现了这么一个告警:

Warning: Your Pipfile requires python_version 2.7, but you are using 3.9.9 (/root/./m/bin/python).

原因:这是因为创建虚拟环境的时候,没有指定python解释器,Pipfile就使用系统默认的python解释器了,就是2.7.5,但是pipenv却是使用系统最新的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值