PyInstaller: подробное руководство по режиму одного каталога

PyInstaller — популярный инструмент для создания пакетов для создания автономных исполняемых файлов из приложений Python. Он позволяет объединить ваш код Python и его зависимости в один исполняемый файл, что упрощает распространение вашего приложения. Одним из режимов, предоставляемых PyInstaller, является режим «одного каталога», который организует упакованные файлы в один каталог. В этой статье мы рассмотрим различные методы использования режима одного каталога PyInstaller, а также приведем примеры кода.

Метод 1: базовое использование
Самый простой способ использовать режим одного каталога PyInstaller — указать параметр --onefileв командной строке. При этом в выходном каталоге создается один исполняемый файл вместе со вспомогательными файлами.

pyinstaller --onefile myscript.py

Метод 2: конфигурация файла спецификации
PyInstaller позволяет создать файл спецификации, который обеспечивает больший контроль над процессом упаковки. Чтобы использовать один режим каталога с файлом спецификации, добавьте параметр --onedirв раздел Analysisфайла спецификации.

# myscript.spec
...
a = Analysis(['myscript.py'],
             pathex=['path/to/dependencies'],
             binaries=[],
             datas=[],
             ...
             {'onefile': False, 'onedir': True})
...

Метод 3: API PyInstaller
Если вы предпочитаете использовать PyInstaller программно, вы можете использовать API PyInstaller для достижения режима одного каталога. Вот пример:

import PyInstaller.__main__
PyInstaller.__main__.run([
    '--name=myapp',
    '--onefile',
    '--onedir',
    'myscript.py'
])

Метод 4: настройка выходного каталога
По умолчанию PyInstaller создает выходной каталог с тем же именем, что и входной скрипт. Однако вы можете настроить выходной каталог, используя параметр --distpathв командной строке или изменив файл спецификации.

pyinstaller --onefile --distpath=dist/myapp myscript.py

Метод 5: включение дополнительных файлов
В некоторых случаях вашему приложению Python могут потребоваться дополнительные файлы, например файлы конфигурации или ресурсы данных. Чтобы включить эти файлы в упакованный исполняемый файл, вы можете указать их с помощью параметра --add-data.

pyinstaller --onefile --add-data 'data_files:resources;resources' myscript.py

Режим одного каталога PyInstaller предлагает удобный способ упаковать ваши приложения Python в один каталог. В этой статье мы рассмотрели несколько методов использования этого режима, включая базовое использование, настройку файла спецификации, API PyInstaller, настройку выходного каталога и включение дополнительных файлов. Следуя этим методам, вы можете создавать автономные исполняемые файлы со всеми необходимыми зависимостями. Удачной упаковки!