我有一个environment.yml
文件,但不想使用Conda:
name: foo
channels:
- defaults
dependencies:
- matplotlib=2.2.2
是否可以让pip
将依赖项安装在environment.yml
文件中,就好像它是requirements.txt
文件一样?
我试过pip install -r environment.yml
,但它不适用于pip==22.1.2
。
发布于 2022-07-01 04:51:25
不,pip
不支持这种格式。它所期望的需求文件格式是文档化的这里。您必须手动或通过自动化此过程的脚本将environment.yml
文件转换为requirements.txt
格式。但是,请记住,并不是Conda上的所有包都可以在PyPI上使用。
发布于 2022-07-01 05:20:51
我已经实现了布赖恩在他的评论中的建议。
这将将environment.yaml
转换为requirements.txt
。
import yaml
with open("environment.yaml") as file_handle:
environment_data = yaml.load(file_handle)
with open("requirements.txt", "w") as file_handle:
for dependency in environment_data["dependencies"]:
package_name, package_version = dependency.split("=")
file_handle.write("{} == {}".format(package_name, package_version))
这将直接用pip
安装依赖项。
import os
import yaml
with open("environment.yaml") as file_handle:
environment_data = yaml.load(file_handle)
for dependency in environment_data["dependencies"]:
package_name, package_version = dependency.split("=")
os.system("pip install {}=={}".format(package_name, package_version))
注意:为了保持简单,我省略了错误处理和包定义的任何其他变体(例如,大于或等于某个版本的包版本的规范)。
发布于 2022-08-29 11:16:13
基于贝尼实现,我只想调整代码,因为它有很多错误;
import os
import yaml
with open("environment.yaml") as file_handle:
environment_data = yaml.safe_load(file_handle)
for dependency in environment_data["dependencies"]:
if isinstance(dependency, dict):
for lib in dependency['pip']:
os.system(f"pip install {lib}")
https://stackoverflow.com/questions/72824468
复制相似问题