Зачем использовать exec_statement при написании хуков PyInstaller? - PullRequest
0 голосов
/ 16 апреля 2020

В документах PyInstaller они демонстрируют использование eval_statement() и exec_statement(), которые вызывают eval() или exec() в новом экземпляре Python. Но они не говорят, почему вы хотите запустить свой код в отдельном экземпляре.

Например, почему их пример:

from PyInstaller.utils.hooks import exec_statement

mpl_data_dir = exec_statement(
   "import matplotlib; print(matplotlib._get_data_path())"
   )
datas = [ (mpl_data_dir, "") ]

не может быть просто:

import matplotlib
datas = [(matplotlib._get_data_path(), "")]

Я пытался сделать это с моей собственной библиотекой и это, кажется, не приносит никакого вреда. Так почему дополнительная сложность? Почему все остальные хуки, включенные в PyInstaller, используют 1-й метод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...