Conda 版本 pip install -r requirements.txt --target ./lib

Posted

技术标签:

【中文标题】Conda 版本 pip install -r requirements.txt --target ./lib【英文标题】:Conda version pip install -r requirements.txt --target ./lib 【发布时间】:2018-12-05 03:46:52 【问题描述】:

这个的 conda 版本是什么?

pip install -r requirements.txt --target ./lib

我找到了这些命令:

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

但它没有说明如何指定--target ./lib

【问题讨论】:

你试过conda install --file requirements.txt吗? 【参考方案1】:

你可以运行conda install --file requirements.txt而不是循环,但是conda install中没有目标目录。 conda install 将软件包列表安装到指定的 conda 环境中。

【讨论】:

当我在我的requirements.txt 上指定包的版本时,我得到InvalidVersionSpec: Invalid version '3.0.': empty version component conda install 中没有我们的目标目录。但是,可以使用 --prefix 可选参数 (doc) 指定虚拟环境的位置,并且可以使用 --name--prefix 可选参数 (doc) 给出目标环境规范。 conda install installs a list of packages into a specified conda environment. 是什么意思?对我来说,它通常会为当前活动的任何 conda env 安装它。 @CharlieParker OP想要安装到不同的目录; pip 可以做到这一点,但 conda 可能不能。【参考方案2】:

要使用 python 3.7 创建名为 py37 的环境,使用通道 conda-forge 和软件包列表:

conda create -y --name py37 python=3.7
conda install --force-reinstall -y -q --name py37 -c conda-forge --file requirements.txt
conda activate py37
...
conda deactivate

标志解释:

-y:是的,不要要求确认。 --force-reinstall:安装包,即使它已经存在。 -q:安静,不显示进度条。 -c:频道,搜索包的附加频道。这些是按顺序搜索的网址

或者,您可以创建一个environment.yml 文件而不是 requirements.txt:

name: py37
channels:
  - conda-forge
dependencies:
  - python=3.7
  - numpy=1.9.*
  - pandas

使用这些命令根据 Yaml 文件中的规范创建和激活 conda 环境:

conda env create --file environment.yml
conda activate py37

使用此命令列出您拥有的环境:

conda info --envs

使用此命令删除环境:

conda env remove --name py37

新功能! ansible-role dockpack.base_conda 可以管理 Linux、Mac 和 Windows 上的 conda 环境,并可用于创建具有自定义 conda 环境的 docker 映像。

【讨论】:

解释标志会很有用 python3上面的第二条命令从环境中删除后,python2是唯一剩下的有什么原因吗? conda 管理 python 环境, conda deactivate 重置你的 shell, conda activate py37 设置你的 PATH。 如果您添加放置 yaml 文件的位置以及如何从中安装环境可能会很有用。我猜如果你有 yaml 文件,环境不会简单地存在。 @Ataxias 非常正确,标志解释非常有帮助。 +1!【参考方案3】:

你总是可以试试这个:

/home/user/anaconda3/bin/pip install -r requirements.txt

这只是使用安装在 conda 环境中的 pip。如果您的环境中没有预装 pip,您可以随时运行以下命令

conda install pip

【讨论】:

只需 pip install -r requirements.txt 对我来说效果很好。 python -m pip install -r requirements.txt 激活 conda env 同上,一旦我激活了conda环境,我就做了pip3 install -r requirements.txt【参考方案4】:

在conda official docs 上快速搜索将帮助您找到每个标志的作用。

到目前为止:

-y:不求确认。 -f:我认为应该是--file,所以它从给定文件中读取包版本。 -q:不显示进度条。 -c:搜索包的附加频道。这些是按顺序搜索的网址

【讨论】:

【参考方案5】:

这行得通吗?

cat requirements.txt | while read x; do conda install "$x" -p ./lib ;done

conda install --file requirements.txt -p ./lib

【讨论】:

对我来说最好的解决方案:cat requirements.txt |同时读取 x;做 conda install -y "$x" ;完成 我喜欢那个,它可能运行得更慢,但更可靠。

以上是关于Conda 版本 pip install -r requirements.txt --target ./lib的主要内容,如果未能解决你的问题,请参考以下文章

conda 是不是从使用 pip install 安装的 pypi 更新软件包?

conda install 和 pip 的区别

mac使用pip3安装tensorflow(不用conda)

conda/pip 为啥现在国内镜像不能用了

解决用conda/pip install 安装库太慢的问题

pip/conda 安装库出现版本冲突问题