python - Bash 脚本到 Conda 安装 requirements.txt 与 PIP 跟进

标签 python bash pip anaconda

在 Linux 服务器上为 Django 应用程序安装 requirements.txt 文件时,我可以运行:

conda install --yes --file requirements.txt

如果任何包无法通过 Conda (PackageNotFoundError) 使用,这将崩溃。这个 bash one liner 是一次一行浏览 requirements.txt 文件的好方法 source :

while read requirement; do conda install --yes $requirement; done < requirements.txt

这将安装通过 Conda 可用的所有包,而不会在第一个丢失的包上崩溃。但是,我想通过捕获 Conda 的输出来跟踪失败的包,如果有 PackageNotFoundError 然后在包上运行 pip install。

我对 bash 不是很好,所以希望有人可以建议 hack。另一种解决方案可能是只写一个名为 pip-requirements.txt 的新文本文件,其中包含失败的要求。

最佳答案

我个人认为 Anaconda 环境和包管理非常出色。因此,如果您使用 conda 命令在您的 python 环境中更新您的包,那么我建议使用 environment.yml 文件而不是 requirements.txt.

environment.yml 应该如下所示:

name: root            # default is root
channels:
- defaults
dependencies:         # everything under this, installed by conda
- numpy==1.13.3
- scipy==1.0.0
- pip:                # everything under this, installed by pip
  - Flask==0.12.2
  - gunicorn==19.7.1

安装命令:

conda env update --file environment.yml

备注:

这里我们设置了 name: root 这是默认的 anaconda 环境名称。这不是如何使用 condaenvironment.yml 文件的标准做法。理想情况下,每个 Python 项目都应该有自己的 environment.yml 文件,其中包含项目特定的环境名称,即 name: project-name。请通过https://conda.io/docs/user-guide/tasks/manage-environments.html关于使用 Anaconda 进行包管理。

关于python - Bash 脚本到 Conda 安装 requirements.txt 与 PIP 跟进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47999477/

相关文章:

python - 在 Python 函数中计算函数对象

python - sqlalchemy:根据条件联合查询多个表中的几列

linux - 合并头文件和部分尾文件然后合并到标准输出的有效方法

string - 排序列表并将排序后的值添加到 bash 中的新列表

python - Windows 上的 Docker-Cloud CLI 错误

python-2.7 - 如何使用python2.7在64位Windows 10机器上安装lxml

python - _tkinter.TclError : bitmap "pyimage2" not defined

实例属性的 Python NotImplementedError

linux - 从 *.txt 搜索并将文件复制到新目录

python - 是否有 `pip` 标志可升级到最新候选版本