python加载动态库_在Python库中动态加载模块的最佳方法

本文探讨了在Python中动态加载以'plugin_'开头的模块文件的问题,以及如何在不同目录下导入库时遇到的问题。作者寻求最佳方法将脚本目录添加到系统路径,以确保动态导入的正确性。文中提供了伪代码示例,展示了如何遍历目录,根据条件加载和运行模块。同时,作者还询问了关于使用py2exe或py2app将库打包成可执行文件时,动态导入可能面临的问题。
摘要由CSDN通过智能技术生成

编辑:原来问题与路径有关。在

如果我将cd放入包含库的目录中并运行python __init__.py,则导入操作一切正常。如果我在另一个目录中尝试导入库本身(即在父目录中,并尝试导入),则会发生失败。在

我看不到任何方法可以为import语句指定路径。在

所以,我想知道最好的方法是将scriptDir中的目录添加到系统路径?这是最好的办法吗?我觉得应该有更优雅的方法,但是。。。在

我想写一个可以很容易扩展的库。在

下面是一些骨架/伪代码,用于我想做的事情。实际上,这个代码要复杂得多,但它遵循一个基本前提:导入每个文件,检查它,并确定是否应该使用它;然后将它分配到一个模块引用列表中。所有这些都将包含在一个库文件夹中。在

我希望库,当导入时,动态导入在其目录中以“plugin”开头的任何文件。参见代码:

初始化.py:import os.path

scriptDir = os.path.dirname(__file__)

mods = []

thisMod = 0

for file in os.listdir(scriptDir):

if (file[0:7] == "plugin_" and file[-3:] == ".py"):

thisMod = __import__(".".join(file.split(".")[0:-1]))

print "debug: imported %s" % thisMod.modName

i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值