Прежде всего, если вы используете универсальный импорт (from m12345 import *
), то вы просто вызовите функцию my()
а не m12345.my()
, иначе вы получите
NameError: name 'm12345' is not defined
Во-вторых, вы должны добавить следующий фрагмент кода в любом сценарии, в которых вы хотите, чтобы иметь возможность непосредственно запустить его или нет (при импорте).
if "__name__" = "__main__":
pass
PS. Добавьте это в 1-й скрипт («m12345.py»). PS2. Избегайте использования универсального метода импорта, поскольку он имеет возможность испортить пространство имен вашего скрипта. (По этой причине это не считается лучшей практикой).
Редактировать: Является ли m12345.py находящейся в папке python (где она была установлена на вашем жестком диске)? Если нет, то вы должны добавить каталог он находится в sys.path с:
import sys
sys.path.append(directory)
где каталогом является строкой места, где находится ваш m12345.py. Обратите внимание: если вы используете Windows, вы должны использовать /
, а не \
. Однако было бы проще просто переместить сценарий (если это возможно).
'm12345 = imp.new_module ('m12345') импорт имп module_name = 'm12345' pyfile = открыт ('C: \\ Temp \\ m12345.py'). Чтения() модуль = имп. new_module (имя_модуля) exec (pyfile, module .__ dict__) exec (открыть ('f: \\ temp \\ m12345.py').read(), m12345 .__ dict__) exec (открыть ("f: \\ temp \\ a1234.py"). read()) ImportError: Нет модуля с именем 'm12345'' – Leo
oops .. изменить это 'm12345 = imp.new_module (module_name) ' см. отредактированный код. Я отредактировал его - теперь он должен работать. –
спасибо! начать работать! – Leo