无法使用 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
导入模块。
我想使用 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
导入模块。