Python C-API эквивалент "python -m имя_модуля" (python 2.7) - PullRequest
0 голосов
/ 27 сентября 2018

Посмотрев документацию по Python C-API, я не могу найти способ выполнить скрипт Python, используя только имя модуля (из кода c или c ++).

Существует ли эквивалентная функция C-API для python -m module_name?

Я использую Python 2.7, встроенный в исполняемый файл C ++.

1 Ответ

0 голосов
/ 29 сентября 2018

Это делается с помощью стандартного модуля runpy библиотеки ( документация ; код ).Вам просто нужно вызвать (недокументированную) функцию runpy._run_module_as_main(module_name).

Код API C , используемый интерпретатором Python, просто импортирует этот модуль, получает атрибут _run_module_as_main и вызывает его (т.е. использует runpy в качестве модуля Python).

...