Ось кілька загальних. Якщо прямо не зазначено, усі перелічені нижче проекти активно підтримуються станом на моє останнє редагування (січень 2020 р.).
Я також включив посилання на відповідні веб-сайти, репозиторії та списки PyPi на випадок, якщо ви хочете самі перевірити, як часто вони оновлювались.
Крім того, якщо не зазначено інше, усі перелічені нижче програми створюватимуть exe спеціально для операційної системи, в якій він працює. Так, наприклад, запуск Pyinstaller в Windows створить Windows exe, але запуск Pyinstaller в Linux створить Linux exe. Якщо ви хочете створити exe для декількох операційних систем, вам доведеться вивчити використання віртуальних машин або використовувати щось на зразок Wine .
Усі наступні програми працюють однаково - вони об’єднують Python і вашу програму, ефективно поєднуючи їх для створення виконуваного файлу.
PyInstaller:
- Посилання : Веб-сайт || Репо || PyPi
- Підтримує : Python 2.7 та Python 3.4 - 3.7 на Windows, Mac та Linux.
cx_Freeze:
- Посилання: Веб-сайт || Репо || PyPi
- Підтримує: Python 2.7 та 3.5 - 3.8 на Windows, Mac та Linux.
py2app:
- Посилання: Веб-сайт || Репо || PyPi
- Підтримує: Python 2.7 та 3.3 (?) - 3.7 (?) Лише на Mac.
- Примітка: Станом на останню редакцію, я не зміг остаточно визначити точний діапазон версій Python, що підтримуються pyapp. В останньому випуску згадується про підтримку Python 3.7.
Примітка: попередні версії цього допису включали записи для py2exe ( репо ) та bbfreeze ( репо ). Обидва проекти вилучено із цього списку: протягом кількох років вони бачили майже ні до чого, і, здається, абсолютно не підтримуються. Див. Історію редагування старих записів.
Звичайно, це не єдиний спосіб робити щось:
пінсист:
- Посилання: Веб-сайт || Репо || PyPi
- Підтримує: Усі версії Python? Примітка - створить лише інсталятори Windows .
Інші примітки:
схоже, Pynsist підтримує об’єднання будь-якої довільної версії Python із вашим додатком. Однак сам інструмент вимагає запуску Python 3.5+.
Pynsist створить програму встановлення Windows для вашої програми, яка буде безпосередньо встановлювати Python на комп'ютер користувача, а не поєднувати його з вашим кодом та створювати ярлики, що посилаються на ваш сценарій Python. Хоча ця програма виробляє лише інсталятори Windows, схоже, ви все ще можете запустити Pynsist на комп'ютерах Mac і Linux.
Нуїтка:
- Посилання: Веб-сайт || Repo (дзеркало Github) || PyPi
- Підтримує: Python 2.6 - 2.7 та Python 3.3 - 3.7 на Windows, Mac та Linux.
- Інші примітки: Nuitka буквально скомпілює ваш код Python і створить exe (на відміну від інших проектів, які просто включають Python), щоб спробувати пришвидшити ваш код. Як побічний ефект, ви також отримаєте зручний exe, який можете розповсюджувати. Зверніть увагу, що у вашій системі повинен бути доступний компілятор C ++ .
cython:
- Посилання: Веб-сайт || Репо || PyPi
- Підтримує: Python 2.6 - 2.7 та Python 3.2 - 3.8 на Windows, Mac та Linux.
- Інші примітки: Cython схожий на Nuitka тим, що він є компілятором Python. Однак замість того, щоб безпосередньо компілювати ваш код, він скомпілює його в C. Потім ви можете взяти цей код C і перетворити свій код на exe . Вам потрібно мати у вашій системі доступний компілятор C.
Мої особисті переваги полягають у використанні PyInstaller, оскільки мені було найпростіше запустити і запустити, він був розроблений для приємної роботи з різними популярними бібліотеками, такими як numpy або pygame, і має чудову сумісність з різними ОС та версіями Python.
Однак я також без особливих труднощів успішно створив різні exe, використовуючи cx_Freeze, тому вам слід також спробувати спробувати цю програму.
Я ще не мав можливості спробувати pynist, Nuitka або Cython, але вони здаються досить цікавими та інноваційними рішеннями. Якщо у вас виникають проблеми з використанням першої групи програм, можливо, варто спробувати одну з цих трьох. Оскільки вони працюють принципово інакше, ніж програми в стилі Pyinstaller / cx_freeze, вони можуть домогтися успіху в тих непарних випадках, коли перша група зазнає невдачі.
Зокрема, я думаю, що pynist - це хороший спосіб обійти всю проблему розповсюдження вашого коду взагалі: Mac і Linux вже мають вбудовану підтримку Python, і просто встановлення Python в Windows може бути справді найчистішим рішенням. (Недоліком є те, що вам потрібно турбуватися про націлювання на декілька версій Python + встановлення бібліотек).
Nuitka та Cython (на мій обмежений досвід), здається, працюють досить добре. Знову ж таки, я сам їх широко не тестував, і тому моє головне зауваження полягає в тому, що, здається, їм потрібно набагато більше часу, щоб створити exe, ніж у програмах стилю "заморожування".
З огляду на це, перетворення вашої програми Python на виконуваний файл не обов’язково є єдиним способом розповсюдження вашого коду. Щоб дізнатись більше про доступні інші варіанти, перегляньте такі посилання: