gpt4 book ai didi

python - 从 conda environment.yaml 安装时依赖项的 pip 依赖项

转载 作者:行者123 更新时间:2023-12-05 03:39:26 25 4
gpt4 key购买 nike

我正在尝试为项目的用户创建一个 conda environment.yml 文件。一种依赖不是由 conda 分发的,但可以通过 pip+github 获得。我假设基于 this example我可以做到这一 pip :

dependencies
- pip
- regular_conda_dep
- depend_of_blah
# Install in editable mode.
- -e git+https://github.com/ourgroup/blah.git

但是 blah (depend_of_blah) 的依赖会发生什么? pip 会在 conda 之后安装,以便只要我小心地包含它,它就会在 blah 之前安装吗?稍后 blah 会干净地更新,从 conda 获得尽可能多的信息吗?

或者我需要在 pip 行中添加 --no-deps 吗?是否暗示这是神奇地完成的?我没有看到很多处理这个问题的高级示例,但根据我的经验,在 pip/conda 混合中不使用 --no-deps 是一个真正的危险,pip 基本上劫持了任何没有被使用的东西首先显式处理。

最佳答案

Conda 解析 YAML,并将依赖规范划分为 Conda 集和 Pip 集 ( code )。只有Conda集合用于解决和创建初始环境。1一旦成功创建环境,Conda将所有Pip规范写入一个临时的requirements .txt ( code ),然后在环境中使用 python 运行命令:

python -m pip install -U -r <requirements.txt>

因此,要明确回答这个问题:如果 blah 的所有依赖项都是通过 Conda 安装的并且它们安装了足够的版本,那么 Pip 应该只安装 blah 并保持 Conda 版本不变。这是因为 --upgrade-strategy 的默认值为 only-if-needed

否则,如果 Conda 依赖项部分不包含 blah 的所有依赖项,则 Pip 将安装必要的依赖项。


[1] 从技术上讲,如果在 Conda 配置中设置了 create_default_packages,Conda 将首先使用这些包创建环境,然后再安装YAML 文件中指定的依赖项。

关于python - 从 conda environment.yaml 安装时依赖项的 pip 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68584223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com