Szukaj…


Składnia

  • pyinstaller [opcje] skrypt [skrypt ...] | plik spec

Uwagi

PyInstaller to moduł służący do pakowania aplikacji w języku Python w jednym pakiecie wraz ze wszystkimi zależnościami. Użytkownik może następnie uruchomić aplikację pakietu bez interpretera języka Python ani żadnych modułów. Poprawnie łączy wiele głównych pakietów, takich jak numpy, Django, OpenCv i inne.

Kilka ważnych punktów do zapamiętania:

  • Pyinstaller obsługuje Python 2.7 i Python 3.3+
  • Pyinstaller został przetestowany na systemach Windows, Linux i Mac OS X.
  • NIE jest to kompilator krzyżowy. (Aplikacja systemu Windows nie może być spakowana w systemie Linux. Musisz uruchomić PyInstaller w systemie Windows, aby spakować aplikację dla systemu Windows)

Oficjalne dokumenty na stronie głównej

Instalacja i konfiguracja

Pyinstaller to normalny pakiet Pythona. Można go zainstalować za pomocą pipa:

pip install pyinstaller

Instalacja w systemie Windows
W przypadku systemu Windows warunkiem wstępnym jest pywin32 lub pypiwin32 . Ten ostatni jest instalowany automatycznie, gdy pyinstaller jest instalowany za pomocą pip.

Instalacja w Mac OS X
PyInstaller współpracuje z domyślnym Pythonem 2.7 dostarczanym z bieżącym systemem Mac OS X. Jeśli mają być używane późniejsze wersje Pythona lub jeśli mają być używane jakiekolwiek większe pakiety, takie jak PyQT, Numpy, Matplotlib itp., Zaleca się ich instalację przy użyciu MacPorts lub Homebrew .

Instalowanie z archiwum
Jeśli pip nie jest dostępny, pobierz skompresowane archiwum z PyPI .
Aby przetestować wersję rozwojową, pobierz skompresowanego archiwum z branży rozwijać z PyInstaller ściągnięcia stronie.

Rozwiń archiwum i znajdź skrypt setup.py . Uruchom python setup.py install z uprawnieniami administratora, aby zainstalować lub zaktualizować PyInstaller.

Weryfikacja instalacji
Polecenie pyinstaller powinno istnieć w ścieżce systemowej dla wszystkich platform po udanej instalacji.
Sprawdź to, wpisując pyinstaller --version w wierszu polecenia. Spowoduje to wydrukowanie aktualnej wersji pyinstaller.

Korzystanie z Pyinstaller

W najprostszym przypadku wystarczy przejść do katalogu, w którym znajduje się plik, i wpisać:

pyinstaller myfile.py

Pyinstaller analizuje plik i tworzy:

  • Plik myfile.spec w tym samym katalogu, co myfile.py
  • Folder kompilacji w tym samym katalogu, co myfile.py
  • Folder dist w tym samym katalogu, co myfile.py
  • Pliki dziennika w folderze kompilacji

Dołączoną aplikację można znaleźć w folderze dist

Opcje
Istnieje kilka opcji, których można używać z pyinstaller. Pełna lista opcji znajduje się tutaj .

Po dołączeniu aplikację można uruchomić, otwierając plik „dist \ mój_plik \ mój_plik.exe”.

Pakowanie w jeden folder

Gdy PyInstaller jest używany bez żadnych opcji w pakiecie myscript.py , domyślnym wyjściem jest pojedynczy folder (o nazwie myscript ) zawierający plik wykonywalny o nazwie myscript ( myscript.exe w systemie Windows) wraz ze wszystkimi niezbędnymi zależnościami.
Aplikację można rozpowszechniać, kompresując folder do pliku zip.

Tryb jednego folderu można wyraźnie ustawić za pomocą opcji -D lub --onedir

pyinstaller myscript.py -D

Zalety:

Jedną z głównych zalet łączenia w jeden folder jest to, że łatwiej jest debugować problemy. Jeśli jakiekolwiek moduły nie zostaną zaimportowane, można to sprawdzić, sprawdzając folder.
Kolejna zaleta jest odczuwana podczas aktualizacji. Jeśli w kodzie jest kilka zmian, ale zastosowane zależności są dokładnie takie same, dystrybutorzy mogą po prostu wysłać plik wykonywalny (który zwykle jest mniejszy niż cały folder).

Niedogodności

Jedyną wadą tej metody jest to, że użytkownicy muszą wyszukiwać pliki wykonywalne wśród dużej liczby plików.
Użytkownicy mogą również usuwać / modyfikować inne pliki, co może spowodować, że aplikacja nie będzie działać poprawnie.

Pakowanie w jeden plik

pyinstaller myscript.py -F

Opcje generowania pojedynczego pliku to -F lub --onefile . Spowoduje to spakowanie programu w pojedynczy plik myscript.exe .

Plik wykonywalny z jednym plikiem jest wolniejszy niż pakiet z jednym folderem. Są również trudniejsze do debugowania.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow