Python Glossary English

все Python 3Модули и импортфункция

runpy.run_module()

запуск

Находит модуль по имени через механизм импорта и исполняет его код, возвращая словарь его глобальных имён — так работает python -m.

Синтаксис

runpy.run_module(mod_name, init_globals=None, run_name=None, alter_sys=False)

По умолчанию __name__ равен имени модуля, поэтому блок if __name__ == '__main__' не выполняется — для поведения python -m передают run_name='__main__'. Модуль исполняется заново при каждом вызове и в sys.modules не остаётся. Без alter_sys=True sys.argv[0] и sys.modules['__main__'] не меняются, и запускаемый код видит аргументы вызывающей программы.

Примеры

import runpy, sys
sys.path.insert(0, '.')
with open('tool.py', 'w') as f:
    f.write('x = 6 * 7\nif __name__ == "__main__":\n    print("main!")\n')
g = runpy.run_module('tool')
print(g['x'], g['__name__'])  # → 42 tool
g = runpy.run_module('tool', run_name='__main__')  # → main!
print('tool' in sys.modules)  # → False

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности