2 回答

TA贡献1796条经验 获得超10个赞
Conda CLI 中的选项
这就是--from-history
旗帜的用途,但不完全是这样。它不会包含每个包的确切构建信息,而是仅包含所谓的显式规范,即用户通过 CLI 显式请求的规范(例如,conda install scipy=1.3.1
)。试试:
conda env export --from-history --name my_env > myenv.yml
仅当用户最初在安装过程中包含版本时,这才会包含版本。因此,创建新环境很可能不会使用完全相同的版本和构建。另一方面,如果用户最初包含版本和构建之外的附加约束,它们也将被包含(例如,通道规范conda install conda-forge::numpy
将导致conda-forge::numpy
)。
另一个值得注意的选项是 flag --no-builds
,它将导出 YAML 中的每个包,但忽略构建说明符。这些标志以互斥的方式工作。
污染
如果这还不够,那么有一个名为conda-minify 的外部实用程序,它提供了一些功能来导出基于依赖关系树而不是通过用户的显式规范最小化的环境。

TA贡献2039条经验 获得超8个赞
看看pipreqs。它仅根据您在项目中明确执行的导入创建一个requirements.txt 文件(您甚至可以选择--no-pin
忽略版本号)。您稍后可以使用此文件通过conda install --file requirements.txt
.
但是,如果您的目标是evironments.yml
文件,则必须手动创建它。但这只是从 clean 中复制并粘贴requirements.txt
。您只需将 conda 与“仅 pip”安装分开即可。
添加回答
举报