__ package__ is None при импорте модуля Python

Я хочу импортировать модули динамически следующим образом:

Я создаю папку с именем 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», что является правильным именем пакета. почему это происходит?

Как импортировать модуль и обеспечить его правильный атрибут пакета?

8
задан Iguananaut 9 September 2013 в 17:09
поделиться