无法使用 importlib.import_module 导入模块

Can't import module with importlib.import_module

我想使用 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文件复制到与脚本文件相同的目录中,它就可以工作。我不明白为什么。

编辑:我已经在控制台中测试了早期的代码并且它有效。但是,我再次修改了代码。我把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 导入模块。