一、相关术语
pip:是首选的安装程序。从Python 3.4开始,它默认包含在Python二进制安装程序中。
virtual environment:是一种半隔离的Python环境,允许为特定的应用安装各自的包,而不是安装到整个系统。
venv:是创建虚拟环境的标准工具,从Python 3.3开始成为Python的组成部分。从Python 3.4开始,它会默认安装pip到所创建的全部虚拟环境。
virtualenv:是venv的第三方替代(及其前身)。它允许在Python 3.4之前的版本中使用虚拟环境,那些版本或是完全不提供venv,或是不会自动安装 pip到所创建的虚拟环境。
Python Packaging Index:是一个由 Python 用户向其他用户发布开源许可软件包的公共仓库。
Python Packaging Authority:是负责标准打包工具以及相关元数据和文件格式标准维护与改进的开发人员和文档作者团队。 他们基于 GitHub 和 Bitbucket 这两个平台维护着各种工具、文档和问题追踪系统。
distutils:是最初的构建和分发系统,于 1998 年首次加入 Python 标准库。 虽然直接使用 distutils 的方式已被淘汰,它仍然是当前打包和分发架构的基础,而且它不仅仍然是标准库的一部分,这个名称还以其他方式存在(例如用于协调 Python 打包标准开发流程的邮件列表就以此命名,distutils-sig@python.org)。
二、pip命令
可以使用名为pip的程序来安装、升级和移除软件包。默认情况下pip将从Python Package Index <https://pypi.org> 安装软件包。你可以在浏览器中访问 Python Package Index,或者使用 pip 受限的搜索功能:(tutorial-env) $ pip search astronomy
pip有许多子命令:“search”、“install”、“uninstall”、“freeze”等等。
可以通过指定包的名称来安装最新版本的包:
(tutorial-env) $ python -m pip install novas
可以通过提供:包名称==版本号,来安装特定版本的包:
(tutorial-env) $ python -m pip install requests==2.6.0
重新运行这个命令,pip会注意到已经安装了所请求的版本并且什么都不做。可以提供不同的版本号来获取该版本,或者可以运行pip install --upgrade将软件包升级到最新版本:
(tutorial-env) $ python -m pip install --upgrade requests
pip uninstall:后跟一个或多个包名称将从虚拟环境中删除包。
pip show:将显示有关特定包的信息:
pip list:将显示虚拟环境中安装的所有软件包:
pip freeze` :将生成一个类似的已安装包列表,但输出使用pip install期望的格式。一个常见的约定是将此列表放在requirements.txt文件中:
(tutorial-env) $ pip freeze > requirements.txt
然后可以将requirements.txt提交给版本控制并作为应用程序的一部分提供。用户可以使用install -r安装所有必需的包:
(tutorial-env) $ python -m pip install -r requirements.txt
参考文档:https://docs.python.org/zh-cn/3/tutorial/venv.html#managing-packages-with-pip