无法使用importlib.import_module导入模块

时间:2016-07-16 11:56:50

标签: python import module python-importlib

我想使用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文件复制到与脚本文件相同的目录中,它就可以工作。我无法弄清楚原因。

1 个答案:

答案 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)

这导致模块指出319list of functions and variables。您似乎可能需要使用上面的dot (.) notation导入模块。