|
|||||||
Компиляция программы на python 3 в exe с помощью программы cx_Freeze
Время создания: 29.07.2019 23:51
Раздел: Разные закладки - Python
Запись: xintrea/mytetra_db_adgaver_new/master/base/15337612070n410mskec/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Наверняка, у каждого Python-программиста возникало непреодолимое желание, а изредка и реальная потребность, скомпилировать свою программу на python в exe файл. Сегодня я расскажу, как это сделать с помощью программы cx_Freeze. Вопрос 1: а оно надо?Прежде, чем начинать компилировать программу, нужно убедиться, что это действительно необходимо. "Компиляция" программы на python - процесс, который может сопровождаться множеством проблем. Более того, это не компиляция в машинный код, как, например, программы на C, а лишь "сборка" в исполняемый файл вашей программы вместе с частью интерпретатора python. Поэтому, если вы будете использовать программу сами или на компьютерах тех, кто её будет использовать, будет стоять интерпретатор python, то вам не нужно её компилировать. Установка cx_FreezeЕсли компилировать программу на python всё-таки нужно, то скачиваем cx_Freeze с http://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_freeze (так как в ней нет одного неприятного бага, который есть в официальной версии ). Затем устанавливаем, не забывая правильно выбрать директорию, где расположен python. КомпиляцияКомпилировать будем программу "блэкджек " (файл 21.py) (кому лень смотреть, привожу полный исходный код). import random random.shuffle(koloda) print('Поиграем в очко?') count = 0 while True: choice = input('Будете брать карту? y/n\n') if choice == 'y': current = koloda.pop() print('Вам попалась карта достоинством %d' %current) count += current if count > 21: print('Извините, но вы проиграли') break elif count == 21: print('Поздравляю, вы набрали 21!') break else: print('У вас %d очков.' %count) elif choice == 'n': print('У вас %d очков и вы закончили игру.' %count) break print('До новых встреч!') Создаём в папке с программой файл setup.py с содержимым: from cx_Freeze import setup, Executable setup( name = "21", version = "0.1", description = "Blackjack", executables = [Executable("21.py")] ) Переходим в командную строку (обычно Пуск → Стандартные → Командная строка). Переходим в папку с программой (в моём случае D:\Dima\py). Запускаем команду C:\Python34\python.exe setup.py build (вместо C:\Python34 нужно написать папку, куда установлен python). Начнется процесс сборки, в котором cx_Freeze может выдавать предупреждения, но, скорее всего, они не повлияют на работу программы. Поздравляю! В папке build теперь есть ваша папка с исполняемым файлом! Заметьте, не файл, а папка! Все остальные файлы также нужны для работы программы (да, это недостаток cx_Freeze). К тому же, при завершении программы окно сразу закрывается (а не ждет нажатия клавиши), поэтому в конец программы нужно дописать что-то вроде: input("Press Enter") И скомпилировать ещё раз. Также можно создать msi-архив командой C:\Python34\python.exe setup.py bdist_msi. Разумеется, при компиляции более сложных программ вы можете столкнуться с более сложными проблемами. Для их решения следует воспользоваться официальной документацией. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|