Oto kilka typowych. O ile nie zaznaczono inaczej, wszystkie wymienione poniżej projekty są aktywnie obsługiwane od mojej ostatniej edycji (styczeń 2020 r.).
Dołączyłem również linki do ich odpowiednich stron internetowych, repozytoriów i list PyPi, na wypadek gdybyś chciał sam sprawdzić, jak często są aktualizowane.
Ponadto, o ile nie zaznaczono inaczej, wszystkie programy wymienione poniżej utworzą plik exe specjalnie dla systemu operacyjnego, w którym działa. Na przykład uruchomienie Pyinstaller w systemie Windows spowoduje utworzenie pliku exe systemu Windows, ale uruchomienie Pyinstaller w systemie Linux da plik exe systemu Linux. Jeśli chcesz stworzyć exe dla wielu systemów operacyjnych, będziesz musiał przyjrzeć się użyciu maszyn wirtualnych lub użyć czegoś takiego jak Wine .
Wszystkie poniższe programy działają podobnie - łączą Python i Twój program, skutecznie łącząc je w celu utworzenia pliku wykonywalnego.
PyInstaller:
cx_Freeze:
py2app:
- Linki: Strona internetowa || Repo || PyPi
- Obsługuje: Python 2.7 i 3.3 (?) - 3.7 (?) Tylko na komputerach Mac.
- Uwaga: od ostatniej edycji nie udało mi się jednoznacznie określić dokładnego zakresu wersji Pythona obsługiwanych przez pyapp. Najnowsza wersja wspomina o obsłudze Pythona 3.7.
Uwaga: wcześniejsze wersje tego posta zawierały zapisy dotyczące py2exe ( repo ) i bbfreeze ( repo ). Oba projekty zostały usunięte z tej listy: od kilku lat nie odnotowano w nich żadnej aktywności i wydaje się, że nie są one utrzymywane. Zobacz historię zmian starych zapisów.
Oczywiście nie jest to jedyny sposób:
pynsist:
- Linki: Strona internetowa || Repo || PyPi
- Obsługuje: wszystkie wersje Pythona? Uwaga - utworzy tylko instalatory Windows .
Inne uwagi:
Wydaje się, że Pynsist obsługuje łączenie dowolnej dowolnej wersji Pythona z twoją aplikacją. Jednak samo narzędzie wymaga do działania języka Python 3.5+.
Pynsist utworzy instalator Windows dla twojego programu, który bezpośrednio zainstaluje Pythona na komputerze użytkownika, zamiast łączyć go z twoim kodem i tworzyć skróty, które prowadzą do twojego skryptu Pythona. Chociaż ten program tworzy tylko instalatory systemu Windows, wydaje się, że nadal można uruchomić Pynsist na komputerach Mac i Linux.
Nuitka:
- Linki: Strona internetowa || Repo (lustro Github) || PyPi
- Obsługuje: Python 2.6 - 2.7 i Python 3.3 - 3.7 w systemach Windows, Mac i Linux.
- Inne uwagi: Nuitka dosłownie skompiluje Twój kod Pythona i utworzy plik exe (w przeciwieństwie do innych projektów, które po prostu zawierają Pythona), aby spróbować przyspieszyć Twój kod. Jako efekt uboczny otrzymasz także poręczny plik exe, który możesz rozpowszechniać. Zauważ, że musisz mieć dostępny kompilator C ++ w swoim systemie.
cython:
- Linki: Strona internetowa || Repo || PyPi
- Obsługuje: Python 2.6 - 2.7 i Python 3.2 - 3.8 w systemach Windows, Mac i Linux.
- Inne uwagi: Cython jest podobny do Nuitka, ponieważ jest kompilatorem Pythona. Jednak zamiast bezpośrednio kompilować kod, skompiluje go do C. Możesz następnie wziąć ten kod w C i przekształcić go w plik exe . Musisz mieć kompilator C w swoim systemie.
Osobiście wolę używać PyInstaller, ponieważ był on dla mnie najłatwiejszy do uruchomienia, został zaprojektowany tak, aby dobrze współpracował z różnymi popularnymi bibliotekami, takimi jak numpy lub pygame, i ma doskonałą kompatybilność z różnymi wersjami systemów operacyjnych i Pythona.
Jednak z powodzeniem zbudowałem również różne exe przy użyciu cx_Freeze bez większych trudności, więc powinieneś również rozważyć wypróbowanie tego programu.
Nie miałem jeszcze okazji wypróbować na szeroką skalę pynistów, Nuitki czy Cythona, ale wydają się one całkiem ciekawymi i nowatorskimi rozwiązaniami. Jeśli napotkasz problemy podczas korzystania z pierwszej grupy programów, warto wypróbować jeden z tych trzech. Ponieważ działają one zasadniczo inaczej niż programy w stylu Pyinstaller / cx_freeze, mogą odnieść sukces w tych dziwnych skrajnych przypadkach, w których pierwsza grupa zawodzi.
W szczególności uważam, że pynist to dobry sposób na obejście całego problemu dystrybucji kodu w ogóle: komputery Mac i Linux mają już natywną obsługę Pythona, a samo zainstalowanie Pythona w systemie Windows może być naprawdę najczystszym rozwiązaniem. (Wadą jest teraz, że musisz się martwić o kierowanie na wiele wersji Pythona + instalowanie bibliotek).
Nuitka i Cython (z mojego ograniczonego doświadczenia) wydają się działać dość dobrze. Ponownie, nie testowałem ich szczegółowo, więc moja główna obserwacja jest taka, że wydaje się, że tworzenie exe trwa znacznie dłużej niż programy w stylu "zamrażania".
Biorąc to wszystko pod uwagę, konwersja programu w Pythonie na plik wykonywalny niekoniecznie jest jedynym sposobem dystrybucji kodu. Aby dowiedzieć się więcej o innych dostępnych opcjach, skorzystaj z poniższych łączy: