Предположим, что A - это каталог пакетов, B - это модуль внутри каталога, а X - это функция или переменная, написанная на B. Как импортировать X с помощью синтаксиса __import__()
? Использование SciPy в качестве примера:от A.B import X используя __import__?
Что я хочу:
from scipy.constants.constants import yotta
Что не работает:
>>> __import__("yotta", fromlist="scipy.constants.constants")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named yotta
>>> __import__("yotta", fromlist=["scipy.constants.constants"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named yotta
>>> __import__("yotta", fromlist=["scipy","constants","constants"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named yotta
>>> __import__("scipy.constants.constants.yotta", fromlist=["scipy.constants.constats"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named yotta
Любые предложения будут оценены.
Это, наконец, делает то, что мне нужно. Я не могу сказать, что я понимаю, почему оператор импорта не кричит, если элемент fromlist не существует (т. Е. Заменить «yotta» на «yyyy»). Но, по крайней мере, вы получаете атрибут AttributeError, если «yyyy» не существует. Спасибо за помощь! – VioChemist