Python // Компиляция скриптов в .exe файл
Чтобы перенести программу на другой компьютер, где не установлен Python, её нужно скомпилировать в .exe файл. Для этого есть несколько способов, и сегодня мы рассмотрим наиболее простой - библиотеку pyinstaller
Дадим в командной строке две команды:
pip install wheel
pip install pyinstaller
После установки всего необходимого, попробуем скомпилировать какую-нибудь программу. Я выбрал в качестве примера свой скрипт, который позволяет скачивать все статьи из любого блога на Golos.io. Он уже имеется у меня в качестве .py файла, а о том как установить нужные для него модули я писал здесь:
https://golos.io/ru--golos/@pythono/skachivaem-lyuboi-blog-s-golos-io-na-python
Сам исходник Python файла лежит тут:
http://pythono.ru/book/downblog.zip
Итак, мы имеем .py файл под названием downblog.py, который успешно запускается и работает в качестве скрипта Python. И теперь мы хотим сделать из него .exe файл, чтобы мы могли просто дать его другу, и не заморачиваться с установкой питона и модулей на другом компе.
Создадим на диске D:\ какую-нибудь папку с простым именем. Я например создал папку с именем "1".
Поместим в эту папку скрипт, который мы хотим скомпилировать - downblog.py
Теперь зайдем в командную строку и дадим команду:
pyinstaller --onedir --onefile --name=downblog "D:\1\downblog.py"
После окончания процесса компиляции в папке 1 мы увидим несколько подкаталогов:
В подкаталоге dist лежит скомпилированный экзешник
Вот так, легко и просто мы получили программу, которая теперь представляет собой обычный .exe файл, и может работать без необходимости ставить Python и модули. Достаточно просто перенести экзешник на нужный компьютер и запустить.
Вот уже скомпилированный мной вариант:
http://pythono.ru/book/exe/downblog-exe.zip
На этом мой рассказ о компиляции программ не заканчивается. Дело в том что бывает, pyinstaller не справляется с компиляцией сложных скриптов. Поэтому в следующий раз мы рассмотрим альтернативный способ компиляции Python скриптов с помощью cx_freeze.
Ставьте апвоут, подписывайтесь, будет еще много интересных уроков!