来自requirements.txt的Python包的磁盘缓存

时间:2013-12-09 04:42:46

标签: python linux pip packages

每个使用开源软件的人都知道有点腐烂率 很高。对于Python软件包来说,情况确实如此,这些软件包似乎会以令人不安的频率更改其API。

您可以构建pip requirements.txt文件来记录所有依赖项,但有时您无法在6个月后找到所需的软件包版本。

假设我构建了一个requirements.txt这样的文件......

decorator==3.4.0
flup>=1.0.2
Werkzeug==0.9.4
argparse==1.2.1
Mako==0.9.0
Jinja2==2.7.1
Flask==0.10.1
itsdangerous==0.23
WTForms==1.0.5
Flask_WTF==0.9.3

我想避免找到特定包版本的问题。

是否有一种简单的方法可以将所有必需的软件包填充到磁盘存档中,而无需从pypi单独下载它们?

2 个答案:

答案 0 :(得分:2)

您可以使用download-cache中的~/.pip.conf选项,这将存储您安装的软件包(其下载的存档),您可以稍后从中安装:

[global]
default-timeout = 60
respect-virtualenv = true
download-cache = /home/foo/bar/.pip/cache
log-file = /home/foo/bar/.pip/pip.log
build = /home/foo/bar/.pip/build

[install]
use-mirrors = true

您还可以创建自己的pypi server,然后维护自己的软件包版本。

在工作中我更喜欢这个选项,因为它允许我使用标准的Python distutils来分发和安装我不想放在全球奶酪店的包。

答案 1 :(得分:0)

这对我有用......使用pip版本1.4.1

cd <package directory>
cat requirements.txt | xargs -I{} pip install {} --download ./ --no-install

在那之后,use pip to install the packages from the same disk archive

是微不足道的