我想使用importlib.import_module
动态导入模块。我的代码是这样的:
import os
import importlib
os.chdir('D:\\Python27\\Lib\\bsddb')
m = importlib.import_module('db')
print dir(m)
我可以在Python控制台中成功完成此操作。但是,如果我在文件C:\Users\Administrator\Desktop>python test.py
中运行这些代码,它就无法运行:
Traceback (most recent call last):
File "test.py", line 5, in <module>
m = importlib.import_module("db")
File "D:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named db
但是如果我将db.py文件复制到与脚本文件相同的目录中,它就可以工作。我无法弄清楚原因。
答案 0 :(得分:0)
bsddb
模块直接保存在D drive
中,并将代码再次更改为:
import os
os.chdir("D:\\")
import importlib
m = importlib.import_module("bsddb.db")
print len(dir(m))
print dir(m)
这导致模块指出319
和list of functions and variables
。您似乎可能需要使用上面的dot (.) notation
导入模块。