编辑:原来问题与路径有关。在
如果我将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