如何用代码实现Python动态加载依赖
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,今天就跟大家聊聊有关如何用代码实现Python动态加载依赖,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前几天在一个开源项目里遇到好多用户反馈
千家信息网最后更新 2025年11月16日如何用代码实现Python动态加载依赖通过 pip 安装运行
注入代码运行
今天就跟大家聊聊有关如何用代码实现Python动态加载依赖,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
前几天在一个开源项目里遇到好多用户反馈,不会安装依赖,或者执行 pip install -r requirements.txt 没有反应。
可能造成的原因有很多种,一一排查起来也很麻烦。
想一劳永逸解决这个问题,一般大家都是到 site-packages 里面把所需要的包导出来,放到项目根目录。
但这样终究太过粗糙,不符合Python优雅的个性。
所以我就想,能不能动态引入包,如果没有的话,再调用 pip 下载。最后也差不多实现了我的设想。
我推荐是使用 快速开始 - 注入代码运行 中的方式
快速开始
跪求star GitHub - louisyoungx/dypend
通过 pip 安装运行
在 PyPI 下载 dypend依赖包
pip install dypend
在本地生成 requirements.txt 依赖文件
pip freeze > requirements.txt
在项目的入口文件的最上层引入 dypend ,不用更改任何其他代码
import dypend
这时 dypend会检查你的Python环境中是否都有 requirements.txt 中的包,如果没有, dypend会调用 pip下载。
注入代码运行
在本地生成 requirements.txt 依赖文件
pip freeze > requirements.txt
在项目的入口文件的最上层添加如下代码,不用更改任何其他代码
import osimport reREQUIREMENTS = os.getcwd() + '/requirements.txt'def getDepends(): requirements = open(REQUIREMENTS, 'r') libs = requirements.readlines() libList = [] for lib in libs: try: name = re.search("^.+(?===)", lib).group(0) version = re.search("(?<===).+$", lib).group(0) libDict = { "name": name, "version": version } libList.append(libDict) except: continue return libListdef importLib(): """Load python dependent libraries dynamically""" libList = getDepends() from pip._internal import main as pip_main import importlib def install(package): pip_main(['install', package]) createVar = locals() for lib in libList: print(lib) try: createVar[lib["name"]] = importlib.import_module(lib["name"]) except Exception as e: try: install(f'{lib["name"]}=={lib["version"]}') createVar[lib["name"]] = importlib.import_module(lib["name"]) except Exception as e: print(e)importLib()这时dypend会检查你的Python环境中是否都有 requirements.txt 中的包,如果没有,dypend会自动下载。
看完上述内容,你们对如何用代码实现Python动态加载依赖有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
代码
文件
项目
动态
内容
运行
上层
不用
入口
环境
检查
生成
优雅
粗糙
一劳永逸
差不多
个性
原因
方式
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京定制软件开发
手机无法连服务器
数据库备份和回退哪个快
中石油网络安全管理制度
登录企点服务器超时
软件开发缴税增值税
德国软件开发公司简介
视图是一种数据库对象
如何建立企近数据库
金蝶商贸版怎么重启服务器
域名 数据库
网络安全专业考研专硕
悯雨岛服务器 什么区别
一带一路企业数据库
珠海软件开发招聘
数据库做了哪些优化
什么是计算机虚拟网络技术
数据库应用技术教材
计算机网络安全管理主修
服务器维护和管理的重要性
潜江网络安全培训
新时达服务器故障代码清除
电大试卷数据库
山西网络技术咨询销售
数据库冷热数据
数据库应用技术实训五截图
软件开发兴趣交流
成都net软件开发报价
软件开发著作权和使用权
网络技术开发与应用专业