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 *
相关推荐
老刘说AI5 分钟前
WorkFlow Agent案例:auto_document_agent(文件自动处理)
开发语言·数据库·人工智能·python·神经网络·自然语言处理
ZhengEnCi14 分钟前
M1-如何转换为HTML
python·html
科学创新前沿20 分钟前
逆向设计新范式:深度学习驱动的声学超材料智能优化!
人工智能·python·深度学习·声学·逆向设计·声学超材料
Sagittarius_A*38 分钟前
传统图像分割:阈值 / 区域生长 / 分水岭 / 图割全解析【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉·图像分割
猫咪老师39 分钟前
Day4 Python的函数和参数机制
后端·python
电商API&Tina1 小时前
比价 / 选品专用:京东 + 淘宝 核心接口实战(可直接复制运行)
大数据·数据库·人工智能·python·json·音视频
love530love1 小时前
Windows 开源项目部署评估与决策清单(完整版)
人工智能·windows·python·开源·github
今夕资源网1 小时前
零基础 Python 环境搭建工具 一键安装 Python 环境自动配置 升级 pip、setuptools、wheel
开发语言·python·pip·环境变量·python环境变量·python自动安装
Derrick__12 小时前
Scrapling 爬取豆瓣电影Top250
开发语言·python·网络爬虫·豆瓣·scrapling
2401_835792542 小时前
Java复习上
java·开发语言·python