如何用pip安装依赖包?

Python 有非常完善的生态,PyPI 提供了很多第三方软件包,功能非常丰富。程序研发需要站在巨人的肩膀上,开发 Python 程序免不了要借助一些成熟的第三方包。

那么,怎么给 Python 安装第三方软件包呢?答案是 pip ,它是最常用 Python 软件包安装工具。

安装

大部分 Python 环境都默认安装了 pip ,包括:

  • 虚拟环境( virtual environment );
  • 从官网下载的 Python
  • ensurepip 模块未被精简的 Python 环境;

ensurepip

Python 通常会内置 ensurepip 模块,通过它我们可以给 Python 安装 pip 工具:

1
$ python -m ensurepip --upgrade

get-pip.py

在没有内置 ensurepip 模块的 Python 环境,我们可以通过 get-pip.py 脚本来安装 pip 工具:

  1. 先下载 get-pip.py 脚本,地址是:https://bootstrap.pypa.io/get-pip.py
  2. 打开命令行,用 Python 执行该脚本;
1
$ python get-pip.py

用法

可用性检查

pip 安装完毕后,可以执行以下命令查看 pip 工具版本,确认工具可用性:

1
2
$ python -m pip --version
pip 21.1.1 from /Users/fasion/opt/pyenv/lib/python3.9/site-packages/pip (python 3.9)

安装软件包

Python 软件包通常会发布在官方仓库 PYPI 上,以安装 flask 框架为例:

1
2
3
$ python -m pip install Flask
[...]
Successfully installed Flask

指定版本

如果想要指定安装软件包某个版本,可以再报名后面加上两个等号和版本号:

1
$ python -m pip install Flask==2.0.3

requirements

大型项目通常需要安装很多软件包,逐个安装未免太麻烦了。我们可以将所有依赖写到一个文件,名字通常叫做 requirements.txt

1
2
Flask==2.0.3
Jinja2==3.0.3

这样一来可以通过 pip 工具一次性安装所有软件包:

1
$ python -m pip install -r requirements.txt

使用镜像加速

PYPI 官方软件库部署在国外,有时速度很慢,甚至连不上。这时可以使用国内高校和公司部署的镜像源,以使用阿里云镜像为例:

1
$ pip install flask -i https://mirrors.aliyun.com/pypi/simple/

-i 选项指定使用的镜像源的地址,更多可用镜像地址请参考:pip国内镜像

从Github安装

如果要安装的软件包暂未发布 PYPI ,但已上传 Github ,我们可以直接从 Github 下载安装:

1
2
3
python -m pip install git+https://github.com/fasionchan/html-table.git@main
[...]
Successfully installed html-table

从分发文件安装

如果要安装的软件包已经打包成分发文件,我们也可以直接通过分发文件来安装:

1
2
3
4
5
6
7
8
9
# tar包分发文件
$ python -m pip install sampleproject-1.0.tar.gz
[...]
Successfully installed sampleproject

# whl格式的分发文件
python -m pip install sampleproject-1.0-py3-none-any.whl
[...]
Successfully installed sampleproject

配置

如果只能从指定镜像源安装,每次都指定 -i 选项就太麻烦了,但我们可以将其写到 pip 配置文件:

1
2
3
4
5
6
7
[global]
index-url = http://pypi.douban.com/simple
extra-index-url = http://mirrors.aliyun.com/pypi/simple
trusted-host =
    pypi.douban.com
    mirrors.aliyun.com
timeout = 120

pip 运行时将加载配置文件,如果配置文件指定了镜像源,pip 将默认从指定镜像下载。

【小菜学Python】系列文章首发于公众号【小菜学编程】,敬请关注:

【小菜学Python】系列文章首发于公众号【小菜学编程】,敬请关注: