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

这就是问题所在:

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

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

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

我创建了一个新的虚拟环境

bin/virtualenv testing

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

source bin/activatepip 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 Fabricwarning: 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....

但是后来的检查显示没有一个包安装正确。我无法导入这些包,并且在我的虚拟环境的site-包目录中也没有找到任何包。那么出了什么问题?

2236443 次浏览

这对我有用:

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

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

-f, --find-links <URL>-如果超文本标记语言文件的URL或路径,则解析指向存档的链接。

如果本地路径或file:// URL是目录,则在目录列表中查找存档。

这对每个人都有效:

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

说明:

//文件名

从给定的需求文件安装。此选项可以多次使用。

用于安装requirements.txt文件中的所有文件。

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

通常,您需要从本地存档快速安装,而无需探测PyPI。

首先,下载满足您要求的档案:

$ pip install --download <DIR> -r requirements.txt

然后,使用–find-links–no-index安装:

$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt

我也遇到过类似的问题。我试过这个:

    pip install -U -r requirements.txt

(-U=更新,如果它已经安装)

但是问题还在继续,我意识到一些用于开发的通用库被遗漏了。

    sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

我不知道这是否会帮助你。

用途:

pip install -r requirements.txt

有关详细信息,请查看帮助选项:

pip install --help

我们可以找到选项'-r'-

从给定的需求文件安装。此选项可以是多次使用。

有关一些常用pip安装选项的更多信息(这是pip install命令上的帮助选项):

在此处输入图片描述

以上是完整的选项集。请使用pip install --help获取完整的选项列表。

我使用过很多被开发人员“遵循他们在互联网上找到的方向”的系统。你的pippython不查看相同的路径/站点包是非常常见的。出于这个原因,当我遇到奇怪的事情时,我首先这样做:

$ python -c 'import sys; print(sys.path)'['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu','/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old','/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages']
$ pip --versionpip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

这是一个快乐系统

下面是一个不幸的系统。(或者至少它是一个幸福的无知系统,导致其他人不快乐。)

$ pip --versionpip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)
$ python -c 'import sys; print(sys.path)'['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip','/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7','/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin','/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac','/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages','/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk','/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old','/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload','/usr/local/lib/python2.7/site-packages']
$ which pip pip2 pip3/usr/local/bin/pip/usr/local/bin/pip3

它是不开心,因为pip是(python3.6和)使用/usr/local/lib/python3.6/site-packages,而python是(python2.7和)使用/usr/local/lib/python2.7/site-packages

当我想确保我正在向 python安装需求时,我这样做:

$ which -a python python2 python3/usr/local/bin/python/usr/bin/python/usr/local/bin/python2/usr/local/bin/python3
$ /usr/bin/python -m pip install -r requirements.txt

你听说过,“如果它没有坏,不要试图修复它。”运营模式是,“如果你没有打破它,你可以解决它,不要试图修复它。”

使用Python 3在虚拟环境中安装requirements.txt文件:

我遇到了同样的问题。我试图在虚拟环境中安装requirements.txt文件。我找到了解决方案。

最初,我是这样创建我的虚拟环境的:

virtualenv -p python3 myenv

使用以下命令激活环境:

source myenv/bin/activate

现在我使用以下方式安装了requirements.txt文件:

pip3 install -r requirements.txt

安装成功,我能够导入模块。

简短的回答

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

或以另一种形式:

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

补充说明

这里,-r--requirement的缩写形式,它要求pip从给定的requirements文件安装。

pip将仅在检查requirements文件中所有列出项目的可用性后开始安装,即使一个requirement不可用,它也不会开始安装。

安装可用软件包的一种解决方法是逐个安装列出的软件包。为此使用以下命令。将显示红色警告以通知您不可用的软件包。

cat requirements.txt | xargs -n 1 pip install

要忽略注释(以#开头的行)和空行,请使用:

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install

试试这个:

python -m pip install -r requirements.txt
pip install --user -r requirements.txt

pip3 install --user -r requirements.txt

首先,创建一个虚拟环境。

在python3.6

virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>

在python2.7

virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>

然后激活环境并安装requirement.txt文件中可用的所有包。

source <path/to/new/virtualenv>/bin/activatepip install -r <path/to/requirement.txt>

我已经解决了运行以下命令:

py -m pip install ./requirements.txt

上面的命令将安装Django项目的所有依赖项和库。

  • 创建虚拟环境python3 -m venv virtual-env(对于Windows使用python而不是python3)
  • 激活虚拟环境source virtual-env/bin/activate
  • 现在安装要求pip install -r requirements.txt

使用pip3 install -r requirements.txt ,但要确保requirements.txt文件已从原始文件中提取,而不是添加到.gitignore

在Windows中,这可能会导致与格式相关的路径问题较少,如果您有

c:\文件夹\子文件夹\requirements.txt

cd c:\folder\subfolderpip install -r requirements.txt

虽然pip install -r requirements.txt大部分时间都有效,我们有时会遇到这样的问题:我们的需求有相互冲突的依赖关系。

您可以使用以下单行代码逐行安装软件包:

while read -r line; do echo $line | cut -d' ' -f1 | xargs pip install; done < requirements.txt

希望它能帮助别人!