Как я могу скомпилировать файл Python, исключая определенный модуль?
Давайте посмотрим на пример:
def b() в b.py вызывается в main.py, как я могу просто скомпилировать main.py, потому что потом мне нужно изменить def b() в b.py. Или я могу скомпилировать их отдельно?
Сейчас я использую pyinstaller, но я могу перейти на другие инструменты компиляции, если они смогут это реализовать.
Спасибо





Это плохая идея: pyinstaller предназначен для упаковки и распространения, а не для разработки. Упакованный файл не предназначен для изменения. Если часть программы изменена, следует выпустить новую версию всего пакета. Если вы хотите выполнить настройку во время выполнения, вам следует использовать файл конфигурации, а не изменять программу.
Однако, если вы настаиваете на этом, вы можете использовать флаг --exclude-module. Бегать
pyinstaller --exclude-module b main.py
так что b не связан с main. Если вы попытаетесь запустить связанный пакет сейчас, появится значок ModuleNotFoundError: No module named 'b'. Скопируйте b.py в директорию (dist/main), запустите main и все снова заработает. Теперь вы можете изменить b.py, и разница будет видна во время выполнения.
Для вывода одного файла .exe для файла .py:
python -m pip install pyinstaller
pyinstaller -D -F --debug [.py file path]
Pyinstaller не будет компилировать ваш код, он просто связывает его с интерпретатором Python.