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却是使用系统最新的