И�пользование PyInstaller дл� удобного ра�про�транени� приложений на Python
Дл� чего и�пользует�� PyInstaller?
PyInstaller читает Python-�крипт, напи�анный вами. Он анализирует ваш код дл� определени� в�ех других модулей и библиотек, необходимых дл� выполнени� вашего �крипта. Затем он �обирает копии в�ех �тих файлов - включа� активный интерпретатор Python!
Зачем и�пользовать Pyinstaller дл� упаковки Python?
PyInstaller иÑ�пользуетÑ�Ñ� длÑ� упаковки кода Python в автономные иÑ�полнÑ�емые приложениÑ� длÑ� различных операционных Ñ�иÑ�тем. Он берет Ñ�крипт Python и Ñ�оздает одиночный иÑ�полнÑ�емый файл, который Ñ�одержит вÑ�е необходимые завиÑ�имоÑ�ти и может быть запущен на компьютерах, на которых не уÑ�тановлен Python. Ðто облегчает раÑ�проÑ�транение и развертывание приложений на Python, поÑ�кольку пользователю не нужно уÑ�танавливать Python и необходимые модули на Ñ�воей Ñ�иÑ�теме длÑ� запуÑ�ка приложениÑ�. Кроме того, PyInstaller также может иÑ�пользоватьÑ�Ñ� длÑ� Ñ�озданиÑ� однофайловых иÑ�полнÑ�емых файлов, которые предÑ�тавлÑ�ÑŽÑ‚ Ñ�обой единый иÑ�полнÑ�емый файл, Ñ�одержащий вÑ�е необходимые завиÑ�имоÑ�ти длÑ� приложениÑ�. Ðто может Ñ�делать раÑ�проÑ�транение приложениÑ� еще проще, поÑ�кольку пользователю нужно лишь загрузить один файл.
Как у�тановить PyInstaller
PyInstaller до�тупен как обычный пакет Python. И�ходные архивы дл� выпущенных вер�ий до�тупны на PyPi, но у�тановить по�леднюю вер�ию легче � помощью pip:
C:\> pip install pyinstallerЧтобы обновить �уще�твующую у�тановку PyInstaller до по�ледней вер�ии, и�пользуйте:
C:\> pip install --upgrade pyinstallerC:\> pip install https://github.com/pyinstaller/pyinstaller/tarball/Как �оздать EXE � помощью PyInstaller
Мы возьмем один файл Python в каче�тве примера, чтобы подробно объ��нить шаги по упаковке. Возьмем Python 3.11.0 в каче�тве примера по�ле у�тановки aspose.cells.
- Создайте образец файла Python � именем example.py.
import os from jpype import * __cells_jar_dir__ = os.path.dirname(__file__) addClassPath(os.path.join(__cells_jar_dir__, "aspose-cells-23.1.jar")) addClassPath(os.path.join(__cells_jar_dir__, "bcprov-jdk15on-160.jar")) addClassPath(os.path.join(__cells_jar_dir__, "bcpkix-jdk15on-1.60.jar")) addClassPath(os.path.join(__cells_jar_dir__, "JavaClassBridge.jar")) import jpype import asposecells jpype.startJVM() from asposecells.api import Workbook, FileFormatType, CellsHelper print(CellsHelper.getVersion()) workbook = Workbook(FileFormatType.XLSX) workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World") workbook.save("output.xlsx") jpype.shutdownJVM() - Создайте папку под названием c:\app и �копируйте файл example.py (прикрепленный) в c:\app.
- Откройте командную �троку и выполните команду pyinstaller example.py.
C:\app> pyinstaller example.py - Скопируйте файлы-заготовки (aspose-cells-xxx.jar, bcprov-jdk15on-160.jar, bcpkix-jdk15on-1.60.jar, JavaClassBridge.jar. Они наход�т�� в папке C:\Python311\Lib\site-packages\asposecells\lib) в c:\app.
- Отредактируйте файл � �уффик�ом spec, чтобы добавить �екцию данных, пример под названием example.spec.

- Выполните pyinstaller example.spec в окне командной �троки.
C:\app> pyinstaller example.spec - Перейдите в каталог C:\app\dist\example, и вы найдете файл example.exe.