Как сделать исполняемый файл на Python? - PullRequest
9 голосов
/ 26 апреля 2010

Я хочу создать исполняемый файл (.exe) моего приложения Python.

Я хочу знать, как это сделать, но имейте это в виду: я использую C ++ DLL!

Нужно ли ставить DLL рядом с .exe или есть какой-то другой способ?

Ответы [ 7 ]

10 голосов
/ 26 апреля 2010

py2exe может генерировать один исполняемый файл. см. эту ссылку для примеров.

Используемый мной setup.py использует следующую комбинацию параметров:

'compressed': 1,
 'optimize':2,
 'bundle_files': 1

Обычно я добавляю внешние dll (например, msvcr71.dll) в ту же папку, где находится исполняемый файл.

Чтобы упростить распространение и автоматизировать установку после создания вашего exe-файла, вы можете использовать Inno Setup для создания установщика, который помещает ваш exe-файл и ваши dll, а также другие документы (readme и т. Д.) В каталог приложения

4 голосов
/ 21 февраля 2014

Выполните следующие действия: Вы можете найти эту документацию на этом сайте .

1) Установить PyInstaller:

Предполагается, что у вас установлен PIP в этом каталоге c: \ PythonXX \ Scripts, если нет, перейдите на этот сайт и посмотрите инструкции по установке "Python Indexing Project (PIP)". Перейдите в командную строку и введите следующую команду.

  • cd c: \ Python27 \ Сценарии для перехода в этот каталог нажмите Enter
  • Затем введите -> pip install pyinstaller, нажмите Enter еще раз
  • Это должно успешно установить PyInstaller!
  • Obs: вам не нужно иметь pyinstaller внутри папки Scripts после того, как установка была сделана, потому что нам нужен PIP для установки файлов pyinstaller. Чтобы сделать вещи более организованными, я обычно перемещаю файлы pyinstaller в другую папку. Чтобы переместить файлы pysintaller, перейдите в папку «Сценарии», где находятся файлы pyinstaller, и найдите все файлы, начинающиеся с «pyi». Вы также можете посмотреть в столбце «Дата изменения», чтобы увидеть, какие файлы были созданы одновременно. Это должно быть 24 pyi-файла, которые были созданы при запуске сценария выше. Скопируйте эти файлы в другую папку по вашему выбору. Я обычно создаю папку на диске C: \ и называю ее «CreateExecutables» с другой папкой в ​​папке «pyinstaller_files».

2) Установить PyWin32:

Перейдите на этот САЙТ и найдите исполняемый файл с именем pywin32-218.win32-py2.7.exe 2.7, который для 32-битных систем для python27 ищет тот, который вам подходит. Запустите исполняемый файл, и он должен успешно установить PyWin32, который работает рука об руку с pyinstaller!

3) Создать один исполняемый файл

Теперь, когда у вас есть PyInstaller и PyWin32, вы можете начать создавать один исполняемый файл. Один исполняемый файл будет создан в другой папке с именем dist, эта папка также создается динамически при запуске команды pyinstaller. Чтобы прояснить ситуацию, файлы pyinstaller, скопированные вами в другую папку, вероятно, называются папкой «pyinstaller_files», поэтому теперь введите в командной строке следующую команду.

  • c: \ python27 \ CreateExecutables \ pyinstaller_files> pyinstaller --onefile c: \ test \ test1 \ yourscript.py
  • Obs: В каталоге yourscript.py находится ваш модуль pydev.

4) Обзор

Приведенная выше команда создаст папку с именем dist в папке pyinstaller_files, в которой будет находиться ваш исполняемый файл yourscript.exe. Теперь вы можете переместить один исполняемый файл в любое место по вашему выбору и удалить папку «dist» и «build» с файлом «yourscript.spec», поскольку они больше не нужны для запуска вашего отдельного исполняемого файла.

2 голосов
/ 26 апреля 2010

Использовать py2exe . Вы можете поместить DLL в ту же папку, что и конечный EXE-файл, и она должна нормально загружаться.

1 голос
/ 16 апреля 2014

Я создал exe-файлы из кода Python 2.7, используя каждый из этих инструментов:

  • Cython (с опцией --embed)
  • Нуитка
  • Py2exe

Все это создаст отдельный exe. Ваш установщик должен будет включить необходимые библиотеки CRT. Ваш конечный результат будет неотличим от любого другого EXE-файла для обычного пользователя.

Первые два сначала компилируются в C, а затем компилируют его в конечный exe-файл, используя любой установленный вами компилятор. Py2Exe упаковывает Python и все ваши файлы .pyo в zip-файл, который он встраивает в исполняемый файл. При запуске он распаковывается в каталог temp и запускает оттуда python. Вам нужно будет добавить вашу dll в файл .spec, чтобы он был включен в ресурс zip. В качестве альтернативы, установите dll рядом с exe и загрузите его, используя абсолютный путь в python.

1 голос
/ 26 апреля 2010

Взгляните на pyinstaller . Он должен найти (и соответственно отправить) эти зависимости для вас.

0 голосов
/ 08 ноября 2016

PyInstaller - лучший выбор, потому что он хорошо работает как в Windows, так и в Linux. Если вы используете arch linux , воспользуйтесь этой ссылкой: PyInstaller или попробуйте yaourt pyinstaller.

0 голосов
/ 13 марта 2015

cx_Freeze тоже хороший.

cx_Freeze - это набор скриптов и модулей для замораживания скриптов Python в исполняемые файлы

...