如何指定与 Conda 环境分开的项目依赖项?

问题描述 投票:0回答:1

Rubygems 使用两个文件,

Gemfile
Gemfile.lock
。 前者指定当前项目的依赖关系;后者指定实际安装了哪些软件包以满足这些依赖关系。 这样,您就可以获得可重现的环境(在
Gemfile.lock
中),同时能够无需担心地更改项目依赖项(在
Gemfile
中)。

据我所知,Conda 的

environment.yml
的功能与
Gemfile.lock
类似。 您可以手动安装一堆软件包,并使用
environment.yml
在另一台计算机上重现该环境。 但很难删除库,因为我无法判断
environment.yml
中列出的库是通过显式安装添加的,还是作为我安装的不同包的依赖项添加的。

所以我想要一个自动管理的文件,它只列出我的项目的依赖项,并让 Conda 生成一个满足这些依赖项的环境。 Conda 可以做到这一点吗?

(或者,Anaconda 的重度用户是否还有其他方法可以解决这个问题?)

python anaconda conda
1个回答
0
投票

但是很难删除库,因为我无法判断environment.yml中列出的库是否是通过显式安装添加的,或者是否是作为我安装的不同包的依赖项添加的。

哈密的链接(https://stackoverflow.com/a/26101973/633093)解决了这个问题。如果您使用最新的 conda 和 mamba 求解器,则可以使用

conda repoquery whoneeds -t packagename
来识别确切的依赖关系。

如何指定与 Conda 环境分开的项目依赖项?

为了解决主要问题,

environment.yml
至今仍被广泛用于维护 conda 环境(不是自动化,但 conda 工具已经改进了很多)。为了维护项目依赖关系,poetry是一个选项:请参阅此相关问题:使用 Conda + Poetry 是否有意义?

© www.soinside.com 2019 - 2024. All rights reserved.