pypa
(Python Packaging Authority) 管理python相关的工具链(pypi
, virtualenv
,pip
)
python的开发工具流
虚拟环境管理 (隔离不同的项目)
依赖管理 (方便部署, 安装)
打包发布 (setuptools 上传到pypi) -- (setup.py)
pipenv 虚拟环境管理
pipenv
是 python 官方推荐的包管理工具,集成了 virtualenv
、pyenv
和 pip
三者的功能于一身,
类似于 php 中的 composer
不再单独使用 virtualenv、pyenv 和 pip 了,现在它们结合到了一起。
不用再维护 requirement.txt 了,使用 Pipfile 和 Pipfile.lock 来代替。
可以在开发环境使用多个 python 版本。
在安装的 pyenv 条件下,可以自动安装需要的 python 版本。
安全,广泛地使用 Hash 校验,能够自动曝露安全漏洞。
随时查看图形化的依赖关系。
- 安装
安装到自己的目录下:
pip3 install --user pipenv (安装到用户home/.local下)
查看当前用户目录:
python -m site --user-base
环境变量设置:
PATH=$HOME/.local/bin
export PATH
shell 自动补齐
.bashrc 中加入
eval "$(pipenv --completion)"
-
常用命令
$ pipenv Usage: pipenv [OPTIONS] COMMAND [ARGS]…
Options: --where 显示项目文件所在路径 --venv 显示虚拟环境实际文件所在路径 --py 显示虚拟环境Python解释器所在路径 --envs 显示虚拟环境的选项变量 --rm 删除虚拟环境 --bare 最小化输出 --completion 完整输出 --man 显示帮助页面 --three / --two 使用Python 3/2创建虚拟环境(注意本机已安装的Python版本) --python TEXT 指定某个Python版本作为虚拟环境的安装源 --site-packages 附带安装原Python解释器中的第三方库 --jumbotron An easter egg, effectively. --version 版本信息 -h, --help 帮助信息 Commands: check 检查安全漏洞 graph 显示当前依赖关系图信息 install 安装虚拟环境或者第三方库 lock 锁定并生成Pipfile.lock文件 open 在编辑器中查看一个库 run 在虚拟环境中运行命令 shell 进入虚拟环境 uninstall 卸载一个库 update 卸载当前所有的包,并安装它们的最新版本
-
使用
1) 创建 pipenv install pkg --python=3.6 2) 激活 pipenv shell To activate this project's virtualenv, run pipenv shell. 3) 退出 exit 4) 运行任务 pipenv run python demo.py (会根据Pipe文件, 激活虚拟环境运行)
-
Pipfile
vsrequiremnets.txt
[[source]] # 仓库地址 url = "https://pypi.org/simple" verify_ssl = true name = "pypi" # url = "https://mirrors.aliyun.com/pypi/simple" # 除了修改Pipfile # 也可以在执行安装命令时通过--pypi-mirror选项指定PyPI源 # pipenv install --pypi-mirror https://mirrors.aliyun.com/pypi/simple # 也可以设置环境变量PIPENV_PYPI_MIRROR [packages] # 项目依赖包 "urllib3" = "*" [dev-packages] # 开发环境需要的包 [requires] python_version = "3.6"
-
Pipefile.lock
系统信息,所有已安装包的依赖包及其版本信息,以及所有安装包及其依赖包的 Hash 校验信息
{
"_meta": {
"hash": {
"sha256": "af58f3510cb613d4d9241128f9a0ceb9bb936ad907543e23ad8317011dcb6715"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.6"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"urllib3": {
"hashes": [
"sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
"sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
],
"index": "pypi",
"version": "==1.23"
}
},
"develop": {}
}
-
添加额外的环境变量
.env
文件Loading .env environment variables… (密钥token, 配置密码等) # .env PROXY=PROXY