Я хочу импортировать модули динамически следующим образом:
Я создаю папку с именем pkg со следующей структурой:
pkg
|__init__.py
|foo.py
В заголовке __ init __. Py
добавьте этот фрагмент кода:
pkgpath = os.path.dirname(pkg.__file__);
for module in pkgutil.iter_modules([pkgpath]):
__import__(module[1], locals(), globals());
m = sys.modules[module[1]];
print m.__package__;
Я обнаружил m .__ package __
это ] None
в случае, если в foo.py нет операторов импорта
но если я добавлю простой оператор импорта вроде этого:
import os
, тогда m .__ package __
будет «pkg», что является правильным именем пакета.
почему это происходит?
Как импортировать модуль и обеспечить его правильный атрибут пакета?