参考翻译自官方文档:https://pip.pypa.io/en/stable/
快速入门
从 PyPI 安装包
pip install SomePackage
安装已经从PyPI下载或从其他地方获取的包。如果目标计算机没有网络连接,这非常有用:
pip install SomePackage-1.0-py2.py3-none-any.whl
列出已过时的包
pip list -o
升级包
pip install -U some_package
卸载包
pip uninstall SomePackage
显示安装包信息
pip show SomePackage
查询包
pip search "query"
升级 pip
# Windows
python -m pip install -U pip
# Linux/MacOS
pip install -U pip
用户指南
安装包
pip install SomePackage # 安装最新版本
pip install SomePackage==1.0.4 # 安装特定版本
pip install 'SomePackage>=1.0.4' # 指定最小版本
依赖文件
输出已安装的软件包
pip freeze > requirements.txt
从 requirements.txt
文件中安装所有包
pip install -r requirements.txt
从 git 上安装
pip install git+https://myvcs.com/some_dependency@sometag#egg=SomeDependency
从 Wheels 安装
从 Wheels 中安装
pip install SomePackage-1.0-py2.py3-none-any.whl
对于没有 wheels 的情况,pip 提供了 pip wheel 命令,为您所有的需求和依赖关系构建 wheels。 pip wheel 需要安装 wheels 包,它使用的 setuptools 包的 bdist wheel
命令。
将您的需求及其所有依赖关系构建到一个本地目录
pip install wheel
pip wheel --wheel-dir=/local/wheels -r requirements.txt
然后仅使用您的本地 wheels 目录(而不是来自PyPI)安装这些依赖:
pip install --no-index --find-links=/local/wheels -r requirements.txt
从本地安装
在某些情况下,您可能无法使用 PyPI(如公司内网),只想从本地软件包安装。这时候可以首先下载符合您要求的依赖包:
$ pip download --destination-directory DIR -r requirements.txt
请注意,在尝试从PyPI下载之前,pip下载将首先在您的 wheel 缓存中查找。 如果您以前从未安装过这些依赖,那么这些依赖将不会被 wheels 缓存。 在这种情况下,如果您的某些依赖不是来自PyPI的轮子,而您想要 wheels,那么请运行以下命令:
$ pip wheel --wheel-dir DIR -r requirements.txt
然后,要仅从本地安装,将使用—find-links和 —no-index,如下所示:
$ pip install --no-index --find-links=DIR -r requirements.txt
相当于 pip install develop
pip install -e <path/url>
安装包
使用pip wheel,您可以将所有项目的依赖关系以及完成的编译捆绑到一个存档中。 这样可以在索引服务器不可用时进行安装,并避免了耗时的重新编译。 创建一个这样的档案:
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ pip wheel -r requirements.txt --wheel-dir=$tempdir
$ cwd=`pwd`
$ (cd "$tempdir"; tar -cjvf "$cwd/bundled.tar.bz2" *)
然后,您可以从档案库进行安装,如下所示:
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ (cd $tempdir; tar -xvf /path/to/bundled.tar.bz2)
$ pip install --force-reinstall --ignore-installed --upgrade --no-index --no-deps $tempdir/*
请注意,编译后的程序包通常是特定于OS和体系结构的,因此这些归档文件不一定跨计算机移植。
从程序使用pip
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'my_package'])
reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze'])
设置多个源
[global]
index-url=http://pypi.douban.com/simple
extra-index-url=http://mirrors.aliyun.com/pypi/simple/
extra-index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url=http://pypi.mirrors.ustc.edu.cn/simple/
[install]
trusted-host=pypi.douban.com
trusted-host=mirrors.aliyun.com
trusted-host=pypi.tuna.tsinghua.edu.cn
trusted-host=pypi.mirrors.ustc.edu.cn
先从index-url查找,找不到则从extra-index-url查找。这在既有本地私有源,也有外部源的时候比较有用。
其他
从本地项目路径或VCS网址以可编辑模式(即 setuptools 的 develop
模式)运行命令:
$ pip install -e <path/url>
$ pip wheel [options] [-e] <local project path/vcs project url>
# 列出可 editable 的项目
$ pip list -e