Как я могу частично скомпилировать файл Python? - PullRequest
0 голосов
/ 03 июля 2019

Как я могу скомпилировать файл python, исключая определенный модуль?

Давайте рассмотрим пример:

есть def b() в b.py, вызываемом в main.py, как я могу просто скомпилировать main.py, потому что мне нужно изменить def b() в b.py впоследствии. Или я могу скомпилировать их отдельно?

Сейчас я использую pyinstaller, но я могу перейти на другие инструменты компиляции, если он сможет это реализовать.

Спасибо

1 Ответ

0 голосов
/ 05 июля 2019

Это плохая идея: pyinstaller предназначен для упаковки и распространения, а не для разработки.Упакованный файл не подлежит изменению.Если часть программы изменена, вы должны выпустить новую версию всего пакета.Если вы хотите выполнить настройку во время выполнения, вам следует использовать файл конфигурации, а не изменять программу.

Однако, если вы настаиваете на этом, вы можете использовать флаг --exclude-module.Запустите

pyinstaller --exclude-module b main.py

, чтобы b не был связан с main.Если вы попытаетесь запустить связанный пакет сейчас, появится ModuleNotFoundError: No module named 'b'.Скопируйте b.py в каталог (dist/main), запустите main, и все снова заработает.Теперь вы можете изменить b.py, и разница будет отображаться во время выполнения.

...