协慌网

登录 贡献 社区

如何根据本地目录中的 requirements.txt 文件使用 pip 安装软件包?

这是问题所在

我有一个 requirements.txt 看起来像:

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

我有一个包含所有包 + 其他包的本地存档目录。

我用它创造了一个新的 virtualenv

bin/virtualenv testing

在激活它时,我尝试根据本地存档目录中的 requirements.txt 安装软件包。

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

我得到了一些输出似乎表明安装没问题

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

但后来检查发现没有正确安装包。我无法导入包,并且在 virtualenv 的 site-packages 目录中找不到任何包。出了什么问题?

答案

我已经阅读了上述内容,意识到这是一个老问题,但它完全没有解决,仍然是我的谷歌搜索结果的顶部,所以这里的答案适用于所有人:

pip install -r /path/to/requirements.txt

这对我有用:

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index - 忽略包索引(仅查看--find-links URL)。

-f, --find-links <URL> - 如果是 html 文件的 URL 或路径,则解析链接到档案。如果是本地路径或file:// URL 是目录,则在目录列表中查找存档。

对于 virtualenv 来安装 requirements.txt 文件中的所有文件。

  1. cd 到 requirements.txt 所在的目录
  2. 激活你的 virtualenv
  3. 运行: pip install -r requirements.txt在你的 shell 中