编写python代码从environment.yaml中找到未安装的pip依赖包,并进行安装

虽然最好的复现方式是再新创建一个虚拟环境然后完全安装对应版本,但是当我要跑好几个类似的代码的时候,就不想每个都创建一个虚拟环境了,直接用原来的,然后添加一些包依赖。

所以我们就大概的步骤就是找到对应的包,检查是否安装过,如果没有则进行安装。

import yaml
with open("ControlNet/environment.yaml", "r") as stream:
  data = yaml.safe_load(stream)
pip_dependencies = data["dependencies"][-1]["pip"]  # 找到对应的pip依赖包
print(pip_dependencies)

def split_by_equal(s):  # 为了与原始的环境兼容,去掉其固定的版本
    return s.split('==')[0]
lst = [split_by_equal(x) for x in pip_dependencies]

import importlib # 使用这个库来动态导入
for pip_dependency in lst:
    try:
        my_module = importlib.import_module(pip_dependency)  # 尝试直接import这个包
    except ImportError:  # 报错了就说明没有这个包
        from pip._internal import main as pip
        pip(['install', '--user', pip_dependency])  # 进行安装
    my_module = importlib.import_module(pip_dependency)  # 再次验证
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值