Python 动态导入库

Python 动态导入库

从一个文件夹下遍历所有.py文件,并利用__Import__()函数实现全局导入

例程

python 复制代码
import os  # 导入操作系统接口模块
import sys  # 导入系统模块

# 将当前目录下的 DIR 目录添加到系统路径中,以便后续导入模块
sys.path.append('./DIR')

# 定义一个函数,从指定的模块中导入所有不以下划线开头的属性
def import_all_from_module(module_name, fromlist):
    # 动态导入指定的模块,并获取模块对象
    module = __import__(module_name, fromlist=fromlist)
    # 遍历模块中的所有属性
    for attribute in dir(module):
        # 如果属性名不以下划线开头
        if not attribute.startswith('_'):
            # 将该属性添加到全局命名空间中
            globals()[attribute] = getattr(module, attribute)

# 定义要导入模块的目录路径
directory_path = "./DIR"
# 获取目录下所有以 .py 结尾且不等于 __init__.py 的文件名,并去掉文件扩展名
module_files = [f[:-3] for f in os.listdir(directory_path) if f.endswith(".py") and f != "__init__.py"]

# 遍历所有模块文件名
for f in module_files:
    # 从每个模块文件中导入所有属性
    import_all_from_module(f, fromlist=['*'])

关于 import() 函数

python 复制代码
__import__("numpy")

并不会起到类似 import numpy 的作用,运行后仍然会报 " no module named numpy "

正确用法:

python 复制代码
np = __import__("numpy")

print(np.pi)

此种方式类似:

python 复制代码
import numpy as np

如果需要类似如下代码的功能,则需参考文章开头的例程:

python 复制代码
from numpy import *
相关推荐
迪霸LZTXDY6 分钟前
U-NET模型训练--图像标注脚本工具
开发语言·python
码界筑梦坊7 分钟前
119-基于Python的各类企业排行数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts·fastapi
习明然8 分钟前
记录下解决Python在windows 2008 Server 无法启动
开发语言·windows·python
duke8692672149 分钟前
C# 文件上传的服务器端加密 C#如何在存储到S3或Azure Blob时启用加密
jvm·数据库·python
SOC罗三炮12 分钟前
Hermes Agent v0.14.0:不用装 WSL 了,Windows 原生支持来了(Early Beta)
python
用户789377339085313 分钟前
前端转后端生存指南(中):化身架构师,用 ORM 魔法掌控数据库
后端·python
༒࿈南林࿈༒17 分钟前
某川数据接口逆向、SM系列国密算法
python·js逆向·国密(sm系列)
ftpeak43 分钟前
LangGraph Agent 开发指南(10~子图 Subgraphs)
python·ai·langchain·ai编程·langgraph
财经资讯数据_灵砚智能44 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月16日
大数据·人工智能·python·信息可视化·自然语言处理
Gerardisite1 小时前
企业微信怎么玩?用 API 打造智能私域助手
开发语言·python·机器人·企业微信