Как запустить exe файл через python
Перейти к содержимому

Как запустить exe файл через python

  • автор:

Упаковка Python программы в EXE файл

Чтобы понять, зачем это может потребоваться, предположим, что вы написали программу на Python. И теперь нужно ее показать руководителю, заказчику или другу. И здесь сразу могут возникнуть трудности. Потому что принимаемая сторона вряд ли обладает познаниями в программировании и к тому же не имеет на компьютере установленного Python, чтобы иметь возможность запустить ваш код.

Гораздо проще заранее позаботиться о простоте запуска Python программы, и упаковать ее в исполняемый EXE файл. Преимущество такого файла в том, что он запускается любым пользователем на любом компьютере под управлением Windows. Даже если на компьютере не установлен Python.

Для упаковки программы будем использовать пакет PyInstaller и надстройку над ним auto-py-to-exe

Ссылки на документацию по данным пакетам:

PyInstaller генерирует EXE файл из командной строки. А auto-py-to-exe надстраивает над PyInstaller пользовательский интерфейс, в котором удобно выбирать различные параметры.

Установка пакетов для упаковки в EXE файл

Для установки пакетов, мы будем использовать pip — систему управления пакетами, написанными на Python.

    1. В поиске Windows набираем cmd
    2. Запускаем приложение Командная строка от имени администратора(ВАЖНО!)
    3. Набираем команды для установок пакетов и нажимаем Enter:

      pip install pyinstaller


      • pip install auto-py-to-exe

    4. Дополнительные пакеты установлены.

Упаковка Python программы в EXE файл

Давайте упакуем с помощью установленных пакетов готовую программу A/B Калькулятор.

Для начала, посмотрим как она запускается в неупакованном виде. Открываем файл программы в редакторе Geany и нажимаем Выполнить (F5). Программа выполняется на фоне командной строки. И когда мы окно программы закрываем, окно консоли еще остается открытым.

Перед генерацией EXE файла подготовим директорию, куда он будет сохраняться. Например, на Рабочем столе создаем папку Генерация EXE

  1. Запускаем командную строку от администратора
  2. Вводим команду auto-py-to-exe
  3. В окне приложения производим настройки:
    • Указываем путь к директории с исходным файлом программы
    • Выбираем опцию Один файл
    • Выбираем опцию Оконное приложение (скрыть консоль)
    • Нажимаем Настройки и указываем путь к директории экспорта, куда будет сохранен готовый EXE файл
    • Жмем кнопку Конвертировать PY в EXE

Некоторое время программа производит обработку. После окончания обработки появляется кнопка Открыть папку вывода . Нажимаем ее и видим в папке готовый EXE файл.

Запускаем EXE файл и проверяем работоспособность. Программа AB Калькулятора запустилась без использования консоли. Теперь файл программы можно пересылать для запуска абсолютно на любом компьютере.

Примечание. Если в процессе запуска EXE файлов возникают проблемы, проверьте, установлен ли Microsoft Visual C++ Redistributable. Если требуется его установка, найти его можно по ссылке .

как открыть файл exe по заданому пути на пайтон

Как сделать чтобы в нужный момент открывался exe файл из другой директории, использовать можно любые модули вот код (если надо):

def login_sucess(): global screen3 screen3 = Toplevel(screen) screen3.title("Success") screen3.geometry("150x100") Label(screen3, text = "Login Sucess").pack() Button(screen3, text = "OK", command =delete2).pack() #тут открываеться файл по пути С:\User\Desktop\python\dist\main\main.exe 

Отслеживать
742 2 2 серебряных знака 16 16 бронзовых знаков
задан 29 янв 2021 в 12:19
1 1 1 серебряный знак 2 2 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Используйте класс Popen модуля subprocess.

Это будет выглядеть примерно так:

subprocess.Popen(r"С:\User\Desktop\python\dist\main\main.exe") 

Отслеживать
ответ дан 29 янв 2021 в 12:42
Shamus Rezol Shamus Rezol
1,431 5 5 серебряных знаков 18 18 бронзовых знаков
Здравствуйте , ошибку не выдает но файл не запускаеться(
29 янв 2021 в 13:29

@denzzzy, «Changed in version 3.8: Popen can use os.posix_spawn() in some cases for better performance. On Windows Subsystem for Linux and QEMU User Emulation, Popen constructor using os.posix_spawn() no longer raise an exception on errors like missing program, but the child process fails with a non-zero returncode.» (см. ссылку subprocess). То есть, возможно программа просто не найдена. Как я сразу заметил, у вас странный путь к рабочему столу. Вот, к примеру, мой: C:\Users\Shamus_Rezol\Desktop.

29 янв 2021 в 15:49

Попробуйте запомнить создаваемый процесс process = subprocess.Popen(r»С:\User\Desktop\python\dist\main\main.exe») и посмотреть возвращаемый код print(process.poll()) . «but the child process fails with a non-zero returncode» — вероятно он ненулевой.

Превращаем код на Python в исполняемый EXE-файл

Аватарка пользователя Рафаил Агазода

Как скомпилировать Python-код в файл EXE, чтобы защитить свой код или наглядно показать работу вашей программы.

Обычно код на Питон запускают двумя способами: через терминал или через текстовый редактор / IDE.

При этом стоит отметить, что файлик Python — это всего лишь скрипт, который сохранён в расширении .py. Да, это очевидно, но в этом и кроется проблема: иногда нужно скрыть исходный код, а поделиться программкой (в виде альфа-версии, например) очень хочется.

Одно из решений, которое закрывают боль с исходным кодом — это конвертация файла Python в исполняемый exe-файлик.

В этой статье мы научимся создавать «экзешники» при помощи двух библиотек: Pyinstaller and auto-py-to-exe.

Перед тем, как продолжить чтение статьи, скачайте этот репозиторий. Он здорово поможет вам понять процесс, если вы будете повторять все шаги вместе с нами.

Почему возникает потребность конвертировать Python-код в EXE

  1. Код могут украсть. Об этом мы уже говорили выше. Куда проще достать исходный код непосредственно из py-файла, чем из скомпилированного приложение. Py-файл достаточно просто открыть!
  2. Хочется поделиться кодом с другими юзерами. Дело не только в том, что ваш код могут украсть. Зачастую код содержит зависимости, которыми должен владеть другой юзер перед запуском вашего Python-кода. Но что, если он вообще ничего не смыслит в программировании? Не заставишь ведь его сперва выучить программирование, чтобы оценить ваше новое суперприложение. Проще создать исполняемый файл.
  3. Исполняемый файл можно запускать автоматически, по расписанию. Этот пункт актуален, если вы решили написать утилиту для вашего ПК, и эта утилита должна запускаться либо в определенное время, либо вместе с запуском ОС.

Конвертация кода Python в файл .exe

Для начала создадим скрипт на Python. В качестве примера мы используем открытый код бронирования жилья AitBnb в Нью-Йорке. Если у вас уже есть готовый код, можете сразу использовать его.

import pandas as pd from pandas.api.types import CategoricalDtype def perform_validation(filename:str): """ A function to validate inputs for NYC Airbnb Open data. """ path_to_data = "../.." data = pd.read_csv(f"") # Convert neighbourhood_group to type category neighbourhood_group_to_cat = CategoricalDtype( categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"], ordered=False ) data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat) # Convert room_type to type category room_type_to_cat = CategoricalDtype( categories=["Entire home/apt", "Private room", "Shared room"], ordered=False ) data["room_type"] = data["room_type"].astype(room_type_to_cat) # Convert last_review to datetime data["last_review"] = pd.to_datetime(data["last_review"]) # Minimum nights a person can stay is one night assert data["minimum_nights"].min() >= 1 # Minimum number of reviews is 0 assert data["number_of_reviews"].min() >= 0 # Minimum number of reviews per month assert data["reviews_per_month"].min() >= 0.00 # Minimum amount of listings per host assert data["calculated_host_listings_count"].min() >= 1 # Number of days when listing is available for books # Could be 0 if tennant has long term booking assert data["availability_365"].min() >= 0 # Save validated data data.to_csv("validated_ab_nyc_2019.csv", index=False) if __name__ == "__main__": # User inputs filename filename = input("Enter filename: ") # Ensure it's a string if not filename.isalpha(): filename = str(filename) # Automated validation perform_validation(filename) 

Вы не забыли скачать библиотеки по ссылке по введении? Сделайте это сейчас.

Как превратить скрипт.py в программу.exe

Аватарка пользователя Елена Капаца

В статье рассмотрим, как работает превращение файла .py в программу .exe с помощью PyInstaller.

Обложка поста Как превратить скрипт.py в программу.exe

Как только первая полноценная программа выходит из-под клавиатуры, ей хочется похвастать, не так ли? Но потенциальные пользователи вряд ли захотят устанавливать себе IDE и все зависимости — это долго и муторно. Чтобы упростить им задачу и показать программу большему числу людей, создатели языка продумали, как сделать из кода исполняемую операционкой программу. Превращение в файла .py в .exe обычно делается с помощью PyInstaller, py2exe или cx_Freeze. Посмотрим, как работает PyInstaller:

Установка

Вы можете сделать это с помощью pip. Откройте командную строку и введите:

pip3 install pyinstaller

Как превратить скрипт.py в программу.exe 1

Я использую простейший скрипт, который экспортирует константный датафрейм в файл.csv:

import pandas as pd

df = pd.DataFrame(data, columns=[‘Numbers’])

То есть я ожидаю, что после запуска exe-программы увижу той же папке csv-файл.

До сих пор бывает, что библиотека ставится без «проваливания» в выделенную виртуальную среду и потом не запускается. Так что для порядка на вашем ПК рекомендую проводить такой эксперимент после запуска следующих команд:

python3 -m venv sample_env

Впрочем, в этот раз обошлось без проблем и PyInstaller заработал.

Преобразование

Перейдите в каталог со скриптом Python, который хотите преобразовать в .exe. Используйте команду cd для перехода в нужную директорию. Например:

Уже в директории, вы можете запустить PyInstaller и преобразовать скрипт Python в .exe. Если скрипт называется my_script.py , введите:

python3 -m PyInstaller my_script.py

Как превратить скрипт.py в программу.exe 2

Как превратить скрипт.py в программу.exe 3

Это создаст .exe-файл в поддиректории dist . Чтобы программа стала одним .exe-файлом, добавьте флаг —onefile :

python3 -m PyInstaller —onefile my_script.py

Вывод у процесса получился избыточный, так что если вы не хотите видеть консоль при выполнении программы, добавьте флаг —noconsole :

pyinstaller —onefile —noconsole my_script.py

В результате рядом с py-скриптом ляжет директория, где в подпапке build будет лежать искомый исполняемый файл Unix (.exe):

Как превратить скрипт.py в программу.exe 4

Я работаю на macOS, однако всё равно могу запустить такой файл с помощью Терминала. Двойным щелчком запускаем my_script и получаем уведомление об исполнении программы:

Как превратить скрипт.py в программу.exe 5

Поскольку конечный путь не был указан, то выходной csv-файл просто лёг в стартовую директорию системы:

Как превратить скрипт.py в программу.exe 6

Обратите внимание, что при использовании PyInstaller все зависимости Python-скрипта должны быть установлены на вашем компьютере. И все используемые модули Python должны быть совместимы с PyInstaller.

Такой маленький шаг — прекрасный способ добавить себе уверенности как разработчику. Если вы все еще испытываете трудности с основами языка, попробуйте курс Result School по основам программирования. С промокодом TPROGER60 вы получите скидку 60%.

Если вы пробовали PyInstaller или аналоги, то какую программу экспортировали? Расскажите свою историю в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *