requirements文件

功能

快速安装依赖包

使用方法

1.导出python依赖

$ pip freeze

说明:列出已经使用的依赖包,不仅列出最顶端的依赖,子依赖(即依赖的依赖)同时会被列出来。 pip freeze说明文档

$ pip freeze > requirements.txt

说明:将依赖包的信息输出到requirements.txt文件中

2.通过requirements.txt安装依赖

 $ pip install -r requirements.txt

3.requirements.txt文件格式

如果需要也可以自己书写requirements.txt文件。基本文件格式很简单,如

pkg1=1.0
pkg2
pkg3>2.0
pkg4>=1.0,<=2.0

具体参考说明文档

Constraints Files

注意:pip版本需大于等于7.1

说明

Constraints Files可以真正将依赖从安装列表中分离开。

假如要安装diango和diango-allauth,定义具体的版本(建议这样写),那么同时需要安装它们的依赖(即依赖的依赖), 如下

Django==1.8.12
django-allauth==0.25.2
oauthlib==1.0.3
python-openid==2.2.5
requests==2.9.1
requests-oauthlib==0.6.1

此时有可能会出现比如python-openid==2.2.5在python3中不工作的bug。此时就需要python3-openid替代,同时需要defusedxml, 如下

Django==1.8.12
django-allauth==0.25.2
oauthlib==1.0.3
python-openid==2.2.5   ; python_version < '3.0'
python3-openid==3.0.10 ; python_version >= '3.0'
defusedxml==0.4.1      ; python_version >= '3.0'
requests==2.9.1
requests-oauthlib==0.6.1

这会使requirements文件变得复杂。此时可以在requirements文件中引用constraints文件。

requirements.txt:

Django==1.8.12
django-allauth==0.25.2

constraints.txt:

# django-allauth requirements
oauthlib==1.0.3
python-openid==2.2.5
python3-openid==3.0.10
defusedxml==0.4.1
requests==2.9.1
requests-oauthlib==0.6.1

命令行:

$ pip install -r requirements.txt -c constraints.txt

此时不需要python的版本。如果不需要对应的包,就会忽略,或者如果一个包不再依赖另一个包,另一个包也不会被安装。

从wheel中安装

install_requires vs Requirements files


非递归式升级 其实就是只升级你需要的包,但是该包所依赖的包不安装 / 升级。

$ pip install --upgrade --no-deps SomePackage

results matching ""

    No results matching ""