Не удается импортировать модуль с помощью 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 в каталог, аналогичный файлу скрипта, он будет работать. Я не могу понять, почему.
1 ответ
Решение
РЕДАКТИРОВАТЬ: я проверил предыдущий код в консоли, и он работал. Тем не менее, я снова изменил код. Я держал 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
как выше.