Как я могу конвертировать .py в .exe для Python?

73

Я пытаюсь преобразовать довольно простую программу Python в исполняемый файл и не могу найти то, что искал, поэтому у меня есть несколько вопросов (я запускаю Python3.6):

Методы выполнения этого, которые я нашел до сих пор, следующие:

  • Загрузка старой версии Python и использование pyinstaller/py2exe
  • настройка виртуальной среды в 3.6, которая позволит мне сделать 1.
  • загрузка конвертера Python в С++ и использование этого.

Вот что я пробовал/проблемы, с которыми я столкнулся.

  • Я установил pyinstaller перед необходимой загрузкой перед ним (pypi-something), чтобы он не работал. После загрузки файла предварительных условий pyinstaller все еще не распознает его.
  • Если я настраиваю virtualenv в версии 2.7, мне действительно нужно установить 2,7?
  • Аналогично, единственный конвертер python для С++, который я вижу, работает только до python 3.5 - нужно ли загружать и использовать эту версию, если вы пытаетесь это сделать?
Теги:
python-3.x
python-3.6
exe
py2exe

6 ответов

81

Шаги для преобразования .py в .exe в Python 3.6

  1. Установите Python 3.6.
  2. Установите cx_Freeze, (откройте командную строку и введите pip install cx_Freeze.
  3. Установите idna, (откройте командную строку и введите pip install idna.
  4. Напишите программу .py именем myfirstprog.py.
  5. Создайте новый файл Python с именем setup.py в текущей директории вашего скрипта.
  6. В файле setup.py скопируйте приведенный ниже код и сохраните его.
  7. При нажатой клавише Shift щелкните правой кнопкой мыши на том же каталоге, чтобы вы могли открыть окно командной строки.
  8. В командной строке введите python setup.py build
  9. Если ваш скрипт не содержит ошибок, то при создании приложения проблем не будет.
  10. Проверьте вновь созданную папку build. В нем есть еще одна папка. В этой папке вы можете найти свое приложение. Запустить его. Сделай себя счастливым.

Смотрите оригинальный скрипт в моем блоге.

setup.py:

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

РЕДАКТИРОВАТЬ:

  • убедитесь, что вместо myfirstprog.py вы должны myfirstprog.py имя файла расширения .py созданное на шаге 4;
  • Вы должны включить каждый import пакет ed из вашего .py в список packages (например: packages = ["idna", "os","sys"])
  • any name, any number, any description в файле setup.py не должно оставаться прежним, вы должны изменить его соответствующим образом (например: name = "<first_ever>", version = "0.11", description = '')
  • import пакеты должны быть установлены до начала шага 8.
  • 6
    Есть ли способ сделать его «автономным» исполняемым? Если я продолжу, как вы советуете в своей статье, я получу папку exe.win.32-3.6. который полон вспомогательных файлов и каталогов (таких как «collection /», «email» и т. д.). Ужасно много для простой печати («привет»). Я хотел бы сделать один, один исполняемый файл, который будет работать на другом компьютере, как есть, без необходимости в других файлах. Есть ли вариант сборки для этого?
Показать ещё 3 комментария
43

Python 3.6 по-прежнему не поддерживается Pyinstaller. Поэтому, чтобы использовать его, вам понадобится Python 3.5 или ниже. Однако я не уверен в py2exe.

В любом случае, случай 1 должен быть выполнен следующим образом:

Откройте окно cmd в папке Python (откройте окно команд и используйте cd или удерживая shift, щелкните его правой кнопкой мыши в проводнике Windows и выберите "Открыть окно команды здесь" ). Затем просто введите

pip install pyinstaller

И что это.

Самый простой способ использовать это, введя в командной строке

pyinstaller file_name.py

Подробнее о том, как его использовать, см. этот вопрос.

Обновление

Python 3.6 теперь поддерживается Pyinstaller

  • 1
    только что протестировано, 3.6 не поддерживается. Это не загружает приложение.
  • 12
    только что проверил.
Показать ещё 1 комментарий
9

На Github есть проект с открытым исходным кодом, называемый auto-py-to-exe. На самом деле он также просто использует Pyinstaller для внутреннего использования, но поскольку он имеет простой графический интерфейс, который управляет Pyinstaller, он может быть удобной альтернативой. Он также может выводить отдельный файл в отличие от других решений. Они также предоставляют видео, показывающее, как его настроить.

GUI:

Изображение 115173

Выход:

Изображение 115174

  • 0
    Вы должны были упомянуть, что это требует MVC ++. ошибка: требуется Microsoft Visual C ++ 14.0.
  • 0
    Я не нахожу никакого значения в этом, так как он построен на pyinstaller, и если вы получите ошибку в pyinstaller, вы получите ее и здесь!
6

Я не могу сказать вам, что лучше всего, но инструментом, который я использовал с успехом в прошлом, был cx_freeze. Недавно они обновились (с 7 января по 17 января) до версии 5.0.1 и поддерживают Python 3.6.

Здесь pypi https://pypi.python.org/pypi/cx_Freeze

Документы показывают, что существует несколько способов сделать это в зависимости от ваших потребностей.
http://cx-freeze.readthedocs.io/en/latest/overview.html

Я еще не пробовал, поэтому я собираюсь указать на сообщение, где обсуждался простой способ сделать это. Некоторые вещи могут измениться или, возможно, не изменились. Как использовать cx_freeze?

  • 8
    Стоит отметить, что cxFreeze не делает однофайловые исполняемые файлы.
2

py2exe - это расширение distutils, которое позволяет создавать автономные исполняемые программы Windows (32-битные и 64-битные) из скриптов Python; Python 3.3 и более поздние версии поддерживаются. Он может создавать исполняемые файлы консоли, исполняемые файлы Windows (GUI), службы Windows и COM-серверы DLL/EXE.

Вы можете скачать это здесь:

https://pypi.org/project/py2exe/

  • 0
    Почему люди опровергают это? Я просто отправляю этот ответ ради помощи.
  • 0
    потому что он не работает на Python 3.6, который OP специально написал, что он использует.
1

Я использовал Nuitka и PyInstaller с моим пакетом PySimpleGUI.

Нуитка Были проблемы с компиляцией tkinter с Нуиктой. Один из участников проекта разработал сценарий, который исправил проблему.

Если вы не используете tkinter, он может "просто работать" для вас. Если вы используете tkinter, скажите об этом, и я постараюсь опубликовать скрипт и инструкции.

PyInstaller У меня работает 3.6 и PyInstaller работает отлично! Команда, которую я использую для создания моего exe файла:

pyinstaller -wF myfile.py

-wF создаст один EXE файл. Поскольку все мои программы имеют графический интерфейс, и я не хочу показывать окно команд, опция -w скрывает окно команд.

Это так же близко к запуску того, что похоже на программу Winforms, написанную на Python.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню