Каждый новичок, изучающий пайтон сталкивается с проблемой упаковки своей программы в единый исполняемый файл.
— Я создал приложение на python и хочу его отправить другу, как мне это сделать? Ведь у него в компьютере он не установлен.
Поскольку пайтон интерпретируемый язык программирования скомпилировать его в единый файл проблематично. Но не невозможно.
Для решения этой проблемы пайтон-разработчики идут на хитрость: в пакет программы «копируют» интерпретатор пайтон. Однако сделать это нужно правильно. И для этой цели обычно используют либо библиотеку pyinstaller , либо cx_freeze.
setup(name= ‘ main ‘ ,
version= ‘0.0.3’ ,
description= ‘My app’ ,
executables=executables,
options=options)
Шаг 3. Корректируем код
А теперь разберем, как исправить этот код под себя.
В третьей строке вписываем название файла, запускающего программу и название итогового файла exe.
executables = [Executable( ‘ИМЯ ВАШЕГО ФАЙЛА’ , targetName= ‘НАЗВАНИЕ ВАШЕГО ПРИЛОЖЕНИЯ.exe’ ,
base= ‘Win32GUI’ , / эта строка нужна для того, чтобы при запуске приложения командная строка не открывалась. На этапе разработки ее стоит удалить, чтобы увидеть ошибки. Убедившись, что запакованный файл работает, снова добавьте эту строку.
Программы на Python | Как отправить SMS на телефон с помощью Python
icon= ‘ИКОНКА.ico’ )] /создайте иконку приложения и конвертируйте в формат ico
Конвертировать иконку можно здесь .
В includes и zip_include_packages мы указываем те модули, которые мы использовали, чтобы python не забыл их запаковать.
includes = [. ]
zip_include_packages = [. ]
В include_files мы указываем путь ко всем дополнительным файлам, которое использует наше приложение. Если у вас иерархия папок, а не все файлы скопом лежат в одной, то не забудьте в пути это указать.
В функции options ничего не исправляем.
В setup исправляем name — указываем имя главного файла, в version — версию приложения, а в description — описание приложения.
Ошибка с шрифтами
Если у вас используются шрифты в приложении, то, скорее всего, вылезет ошибка, поскольку cx_Freeze не включает их в пакет. Мой выход из ситуации: скачать нужный шрифт из интернета и файл .ttf добавить непосредственно в проект. При этом в своем проекте нужно исправить код загрузки шрифта.
FONT = «НАЗВАНИЕ_ШРИФТА.ttf»
Шаг 3. Запаковываем.
Выполним запаковку, вбив в командную строку следующее:
python setup.py build
У вас должен появиться файл build_windows. Это и есть наш итоговый пакет программы, который мы сможем распространять. Здесь же мы найдем файл .exe, запускающий нашу программу. Для него, например, можно создать ярлык и закинуть его на рабочий стол.
Возможные ошибки.
Если .exe файл выдает ошибку, то скорее всего, вы не указали, либо указали неправильно путь до одного из используемых файлов и программа не может его найти. Этот файл будет указан в ошибке.
Конвертируем .py в .exe | PyInstaller
Надеюсь у вас все получилось, а если нет, обязательно напишите об этом. И я постараюсь вам помочь.
И не забудьте подписаться на наш телеграм-канал .
Источник: dzen.ru
Как я могу отправить программу Python (включая библиотеки) другу?
Это упаковывает script, а компоненты — в пакет, который работает с включенным exe.
Если вы храбры, вы можете «сворачивать свои собственные», собирая ключевые DLL и EXE для python:
.MSVCR71.dll
.OCI.dll
.python.exe
.python25.dll
И все необходимые файлы *.pyc и *.pyd в каталоге Python HOME Lib:
.Libcx_Oracle.pyc
.Libcx_Oracle.pyd
.Libencodingsaliases.pyc
.Libglob.pyc
.Libloggingconfig.pyc
.Libos.pyc
.Libpprint.pyc
. excreta .
Принимая все файлы и любые ваши разработанные скрипты *.py и сворачивая их в соответствующие
структуру каталогов и его подпитку для распространения.
Источник: progi.pro
Как перенести программу? [закрыт]
Закрыт. Данный вопрос необходимо конкретизировать. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Закрыт 5 лет назад .
Столкнулся с тем, что нет подробной информации про то, как передать написанную программу пользователю. Пишу на Python 3 и получаю файл .py , из личных соображений понимаю что должен каким-то образом передать пользователю все модули которые подключал и он должен как-то запустить программу) Пожалуйста, перечислите все возможные варианты, их плюсы и минусы и для каких OC они подходят, а так же если я использую PyQt добавляются ещё какие-то способы переноса или их становится меньше? PS: может есть какая-то не заумная литература на эту тему?
Источник: ru.stackoverflow.com