статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Создание исполняемых файлов из скриптов Python с помощью py2exe
Введение Для выполнения сценариев Python требуется множество предварительных условий, таких как наличие установленного Python, наличие множества установленных модулей, использование командной строки и т. Д., В то время как выполнение файла .exe очень просто. Если вы хотите создать простое приложение и распространить его среди множества пользователей, написать его в виде короткого скрипта Python несложно, но предполагается, что пользователи знают, как запускать скрипт, и Python уже установлен на их машине. Примеры, подобные этому, показывают, что там
Время чтения: 4 мин.
Вступление
Выполнение скриптов Python требует множества предварительных условий, таких как наличие установленного Python, наличие множества установленных модулей, использование командной строки и т. Д., В то время как выполнение .exe очень просто.
Как создавать скрипты в Windows | удобный конструктор с графическим интерфейсом
Если вы хотите создать простое приложение и распространить его среди множества пользователей, написать его в виде короткого скрипта Python несложно, но предполагается, что пользователи знают, как запускать скрипт, и Python уже установлен на их машине.
Примеры, подобные этому, показывают, что есть веская причина для преобразования .py в эквивалентные .exe в Windows. .exe означает «Исполняемый файл» , который также известен как двоичный файл.
Самый популярный способ добиться этого — использовать модуль py2exe В этой статье мы быстро рассмотрим основы py2exe и устраним некоторые распространенные проблемы. Чтобы продолжить, не требуется никаких дополнительных знаний Python, однако вам придется использовать Windows.
Преобразование кода интерпретируемого языка в исполняемый файл — это практика, обычно называемая замораживанием .
Установка py2exe
Чтобы использовать py2exe , нам нужно его установить. Сделаем это с помощью pip :
$ pip install py2exe
Преобразование скрипта Python в .exe
Во-первых, давайте напишем программу, которая будет выводить текст на консоль:
import math print(«Hannibal ante Portas») print(factorial(4))
Давайте запустим следующие команды в командной строке Windows, чтобы создать каталог ( exampDir ), переместить уже написанный код в указанный каталог и, наконец, выполнить его:
$ mkdir exampDir $ move example.py exampDir $ cd exampDir $ py example.py
Это должно вывести:
Hannibal ante Portas 24
Всегда проверяйте скрипты, прежде чем превращать их в исполняемые файлы, чтобы убедиться, что если есть ошибка, она не вызвана исходным кодом.
Установка и конфигурация
Создайте в той же папке еще один файл с именем setup.py Здесь мы сохраним детали конфигурации того, как мы хотим скомпилировать нашу программу. Сейчас мы просто добавим в него пару строк кода:
from distutils.core import setup # Need this to handle modules import py2exe import math # We have to import all modules used in our program setup(console=[‘example.py’]) # Calls setup function to indicate that we’re dealing with a single console application
Если бы мы имели дело с приложением с графическим интерфейсом пользователя, мы бы заменили console такими windows
Скрипты PowerShell с нуля. Уроки для начинающих
setup(windows=[‘example.py’])
Теперь откройте командную строку от имени администратора, перейдите в только что упомянутый каталог и запустите файл setup.py
$ cd exampDir $ python setup.py py2exe running py2exe *** searching for required modules *** *** parsing results *** .
папка dist
Если все сделано правильно, должен появиться подкаталог с именем dist . Внутри него будет несколько разных файлов, в зависимости от вашей программы, и одним из них должен быть example.exe . Чтобы выполнить его из консоли, запустите:
$ example
И вас встретит наша латинская цитата, за которой следует значение 4 !:
Hannibal ante Portas 24
Или вы можете дважды щелкнуть по нему, и он запустится в консоли.
Если вы хотите объединить все файлы, добавьте bundle_files и compressed и установите для zipfile значение None следующим образом:
from distutils.core import setup import py2exe setup( options = >, console = [], zipfile = None, )
И повторно запустите команды, чтобы сгенерировать файл .exe.
Теперь ваши конечные пользователи могут запускать ваши сценарии без каких-либо знаний или предварительных условий, установленных на их локальных машинах.
Поиск проблемы
Ошибки при преобразовании файлов .py .exe являются обычным явлением, поэтому мы перечислим некоторые распространенные ошибки и решения.
Как исправить отсутствующие библиотеки DLL после использования py2exe
Распространенной проблемой py2exe является отсутствие .dll -s.
DLL означает «библиотека с динамической компоновкой», и они существуют не только для того, чтобы делать ошибки, обещаю. DLL содержат код, данные и ресурсы, которые могут понадобиться нашей программе во время выполнения.
Если после запуска .exe вы получите системную ошибку, которая говорит что-то вроде:
The program can’t start because something.dll is missing from your computer. Try reinstalling the program to fix this problem.
Или в командной строке написано:
ImportError: (DLL load failed: The specified module could not be found.)
Решение состоит в том, чтобы найти недостающую .dll и вставить ее в папку dist. Есть два способа сделать это.
- Найдите файл на своем компьютере и скопируйте его. Это будет работать в большинстве случаев.
- Найдите в Интернете отсутствующую .dll и загрузите ее. Постарайтесь не скачивать его с какого-нибудь теневого сайта.
Как сгенерировать 32/64-битные исполняемые файлы с помощью py2exe?
Чтобы сделать 64-битный исполняемый файл, установите на ваше устройство 64-битный Python. То же самое и с 32-битной версией.
Как использовать py2exe в Linux или Mac
py2exe не поддерживает Linux или Mac, так как он предназначен для создания файлов .exe, которые являются уникальным для Windows форматом. Вы можете загрузить виртуальную машину Windows как на Mac, так и на Linux, использовать Wine или использовать другой инструмент, например Pyinstaller в Linux или py2app на Mac.
Чтобы упростить запуск проектов Python на устройствах Windows, нам нужно создать исполняемый файл. Мы можем использовать множество различных инструментов, таких как Pyinstaller , auto-py-to-exe , cx_Freeze и py2exe .
Двоичные файлы могут использовать библиотеки DLL, поэтому обязательно включите их в свой проект.
Licensed under CC BY-NC-SA 4.0
Источник: rukovodstvo.net
Как конвертировать сценарии Powershell с формата PS1 в EXE
Для сценариев Powershell существует отдельный формат ‘.ps1’. Этот формат можно преобразовать в полноценный .exe файл. Кроме удобств использования exe файлов описанные способы преобразования покажут и функциональные преимущества. Часть преимуществ, которые можно заметить сразу:
- политики — у вас могут блокироваться запуски сценариев имеющие расширения скриптовых языков;
- понятное назначение — все пользователи Windows знают для чего нужны файлы с буквами .exe на конце названия. Расширение .ps1 может вызывать вопросы даже у администраторов;
- запуск — exe файл запускается двойным кликом, а ps1 — через консоль с настроенной политикой безопасности;
- редактирование — поместив сценарий Powershell в exe файл его будет сложнее отредактировать;
- срытие консоли — простой запуск скриптов PS1 всегда вызывает окно консоли. Один из способов обойти его — с помощью exe файла.
Еще нужно отметить, что exe файл можно рассмотреть как архив с файлами. То есть мы можем поместить в 1 exe файл сам сценарий Powershell и файлы (например пароли, адреса, таблицы и т.д.). Это преимущество избавляет нас от ситуации с отсутствующими файлами и доступами к ним, которые могут быть у обычного сценария.
Навигация по посту
В большинстве программ, которые будут рассмотрены ниже, конвертация форматов называется «компиляция». На самом деле это не совсем так. По-большему счету они добавляют какой-то скрипт на C# поверх вашего сценария и упаковывают в exe (проще сказать «инкапсуляция»). Какого-то очень сложного процесса перевода сценария с одного языка на другой — нет.
В этой статье будут рассмотрено несколько способов создания .exe файлы из .ps1. Самыми удобными и легкими способами — являются первые 3. Способы должны подойти для интерпретаторов Powershell 5.1+ и 6-7+. В конце статьи есть таблица с итогами.
PS2EXE
Модуль ps2exe имеет консольный и графический режим работы. На мой взгляд PS2EXE — это самый простой и удобный способ создания EXE по следующим причинам:
- Доступен из репозитория Powershell;
- Единственное предназначение модуля — конвертация форматов;
- Есть консольный вариант и в стиле PS;
У этого способа так же есть и минус. Как сообщал автор проекта с помощью этого модуля, когда-то, был упакован в .exe вирус. После этого, некоторые антивирусы, стали срабатывать на файлы .exe упакованные этим модулем. Мой антивирус таких сигнатур не нашел. Проект популярный и имеет 200 звезд и с открытым кодом.
Тем не менее доверять автору или нет — решать вам.
Установить его можно с помощью следующей команды:
Install-Module ps2exe -Repository PSGallery
Вам может пригодится основная информация по модулю, которую можно получить так:
Get-Module -ListAvailable | where name -eq ps2exe | select *
На скриншоте выше отмечена, например, ссылка на гитхаб, где есть обсуждение этого модуля и его возможностей.
Консоль
У модуля есть несколько алиасов, которые работают одинаково. Самый простой способ создания exe файла следующий:
Invoke-PS2EXE D:script.ps1 D:target.exe # аналогичная команда ps2exe -inputFile D:script.ps1 -outputFile D:target.exe
У команды модуля есть ряд дополнительных параметров увидеть которые можно в справке:
ps2exe
Отмечу наиболее важные параметры:
- x86-x64 — компиляция под определенную архитектуру. Если этого не указано, то используется значение по умолчанию (обе архитектуры);
- title — заголовок консоли;
- noConsole — не отображает консоль при запуске скрипта;
- requireAdmin — запрашивать права администратора (UAC);
- credentialGUI — вывод диалогового окна для ввода учетных данных.
Если вы используете параметр noConsole, обратите на разное поведение с выводом в stdout. Без указания параметра noConsole — все будет выведено в консоль, а с параметром — в диалоговые окна.
В примере ниже я создал exe файл, который выполняет одну команду «New-Item». Эта команда возвращает информацию о созданном объекте. Если вы не помещаете результат команды в переменную, то он попадает в stdout. Результат команды будет выведен построчно в диалоговых окнах:
Это можно было бы исправить поместив команду в переменную:
$com = New-Item -Path «D:/file_2»
GUI
PS2EXE доступен и в графическом варианте. Папка, в которой лежит файл для запуска GUI, указана в описании модуля (на скриншоте выше). Обычно это один из следующих путей:
# 32bit C:Program Files (x86)WindowsPowerShellModulesps2exe # 64bit C:Program FilesWindowsPowerShellModulesps2exe
В папке модуля будет папка с версией. Внутри этих папок файл ‘Win-PS2EXE.exe’.
Параметры графического интерфейса достаточно очевидны и не нуждаются в дополнительном объяснении.
Вам так же будет интересно:
Как работать в Powershell с модулями и профилями и повторно использовать данные
IExpress 2.0
Отличительной особенностью этого способа в том, что он уже установлен в Windows. IExpress предназначен не только для сценариев Powershell. Основная задача программы создания .exe для установки и запуска программ и поэтому имеет больше возможностей. Запустить редактор вы можете через любую консоль:
iexpress.exe
Большая часть выбора предназначена для случаев, если вы планируете установить какую-то программу (распаковать в Program Files, реестр и т.д.), а не просто запустить .exe. Из-за этого большую часть выбора можно оставить по умолчанию. На скриншоте выбраны те пункты, которые понадобятся вам для конвертации ps1 в exe:
- В конце этих диалоговых окон у вас появится файл со всеми выборами и настройками, которые вы сделали. Этот файл можно импортировать тут что бы не повторять этих действий;
- Вам нужно создать exe файл, который будет распакован в памяти и запущен. Другие варианты, наверное, нужны для установки;
- Выбор заголовка окна после запуска .exe;
- Нужно ли у пользователя спрашивать разрешение на установку программы;
- Нужен, если вы хотите ограничить права пользователя какой-то лицензией (EULA). Т.е. обычное пользовательское соглашение;
- Какие файлы вы планируете включить в пакет EXE. Это может быть, например, сертификат;
- Нужно указать скрипт и название программы, которые его запустит. Конечно это будет интерпретатор ‘powershell.exe’. Так же может понадобится установить политику запуска скрипта на нужный уровень. Пример того что вы можете использовать:
powershell.exe -ExecutionPolicy Bypass -File «D:script.ps1»
- Сообщение, которое появляется после успешной установки. В случае обычного запуска файла оно не нужно;
- Путь, где должен быть создан файл exe;
- Пункты, которые используются в старых ОС и при установке программ. Скрывают от пользователя процесс копирования файлов и включают поддержку длинных имен файлов.
- Нужна ли перезагрузка;
- Файл конфигурации, который можно установить в самом 1-ом окне.
Останутся еще 2 окна, которые не будут иметь выборов. После этого появится файл .exe пригодный для запуска.
В IExpress, в отличие от других программ, нельзя установить требования к привилегиям. Вы либо явно запускаете программу от администратора или от обычного пользователя (в песочнице).
ISE Steroids
В Windows есть собственный редактор для сценариев Powershell, который называется ISE (Integrated Scripting Environment). Для этого редактора существует расширение с названием ISE Steroids. Расширение добавляет множество функций и одна из функций — это конвертация файлов. Плюсы этого способа от следующих в том, что оно бесплатное, до сих пор поддерживается и является расширением (а не полноценной программой).
Существует несколько способов установки этого расширения. Самый простой из репозитория:
Install-Module -Name «ISESteroids» -Scope CurrentUser -Repository PSGallery -Force
После установки, в самом ISE нужно выполнить следующую команду:
Start-Steroids
Если при установке могут появиться ошибки. Это ожидаемая ситуация и исправить ее можно скачав пакет с официального сайта ISE Steroids или использовав другие методы описанные там же.
После установки расширения, зайдя в «Сервис», можно увидеть кнопку «Turn Code into EXE. «:
В новом окне настраивается версионность приложения, поведение окна консоли при запуске приложения, устанавливается иконка и привилегии для запуска. При нажатии на кнопку «Create Application» — нужно указать путь для сохранения готового файла:
PS1 to EXE
Менее популярный проект, который уже около 2 лет не поддерживается и является редактором кода с возможностью конвертации. На официальном сайте и Github скачать программу нельзя и ее нужно искать по сайтам. Достаточно много минусов, что бы пользоваться этой программой в последнюю очередь.
Консоль
После установки файл, для запуска консоли, находится в одной из следующих папок:
# 32bit C:Program Files (x86)Ps1 to Exe # 64bit C:Program FilesPs1 to Exe
Консольный вариант команды не несет принципов Powershell в наименовании ключей. «PS1 to exe» использует стиль CMD. Пример создания exe файла без показа консоли:
./Ps1_To_Exe.exe /ps1 «D:script.ps1» /exe «D:target.exe» /include «D:temp.py» /invisible
Параметр /include добавляет в exe дополнительные файлы и папки.
.Ps1_To_Exe.exe /?
GUI
Графический интерфейс программы имеет так же встроенный редактор кода. После открытия файла мы увидим следующую картинку:
- Файл, который будет добавлен в exe;
- Дополнительные настройки для конвертации;
- Выбор дополнительных файлов, если вы планировали их включить;
- Конвертация в exe.
VSCode и Powershell Pro Tools
VSCode — это современный редактор кода от Microsoft. Он поддерживает множество языков через разные расширения, в том числе и Powershell. Одно из таких расширений, Powershell Pro Tools, позволяет выполнять конвертацию ps1 в exe. Единственный плюс этого способа в том, если вы пользователь VSCode. Минут — расширение платное.
Выглядит это расширение следующим образом:
После установки расширения и открытии вашего скрипта вам нужно нажать кнопку в правом-верхнем углу экрана для создания .exe файла. При первом нажатии на кнопку, в корневой директории VSCode создается файл конфигурации с расширением «psd1». В этом файле, будет указан путь куда будет сохранен .exe файл:
Powershell Studio
Еще один способ создать exe это использовать Powershell Studion. Эта программа — крупный IDE, который разрабатывался специально под Powershell и, конечно, он является платным (45 дней trial).
После открытия файла в IDE нужно открыть настройки пакетов:
В главном окне вы должны выбрать интерпретатор для выполнения сценария Powershell. Скорее всего вам нужен будет ‘Windows Powershell’, а не более старшие версии, так как они не устанавливаются по умолчанию в Windows:
В следующем окне нужно выбрать путь, где файл должен быть сохранен и выполнить билд:
У Powershell Studio есть много преимуществ. Например он может подписывать конвертированные файлы вашим сертификатом — такой возможности, в других программах, нет.
Остальные варианты
В статье перечислена только часть программ, которые могут выполнить конвертацию. Есть множество других программ. Например редактор PowerGUI. Этот проект был закрыт более 4 лет назад т.к. он был выкуплен компанией DELL. Инсталлятор можно найти только на не официальных сайтах.
Из-за отсутствия обновления и поддержки я не стал его включать в список.
Так же есть следующая найденная таблица, которая примерно суммирует написанное выше. Отмечу, что я нашел в ней ошибки — ISE Steroids, например, бесплатное расширение. Могут быть и другие.
Источник: fixmypc.ru
Как из скрипта сделать программу
Создание исполняемых приложений на PHP