Процесс преобразования простого скрипта Python в исполняемый файл Windows

Я написал сценарий, который поможет пользователю Windows в повседневной жизни. Я хочу просто отправить ей .exe и не просить ее установить python, dll или иметь дело с какими-либо дополнительными файлами.

Я прочитал множество записей stackoverflow о компиляции скриптов Python в исполняемые файлы. Я немного сбит с толку, так как есть много вариантов, но некоторые кажутся устаревшими (обновлений нет с 2008 года), и ни один из них не был достаточно простым, чтобы я не спрашивал об этом прямо сейчас после нескольких часов, потраченных на это.

Я надеюсь, что есть лучший и современный способ сделать это.

Я посмотрел:

но либо я не мог заставить их работать, либо не мог понять, как получить нужный мне результат. Ближе всего у меня был py2exe, но он все равно дал мне MSVCR71.dll

Я был бы признателен за пошаговый ответ, так как я также не смог проследить за некоторыми ответами по настройке, которые требуют некоторого предварительного понимания того, как использовать py2exe или некоторые другие инструменты.

Я использую Python 2.5, поскольку один из модулей доступен только для этой версии.


person greye    schedule 26.01.2010    source источник
comment
большую часть времени вы можете игнорировать dll MSVCR, я не распространяю ее вместе со своим приложением и не слышал никаких ошибок (ключевым моментом является то, что они могли произойти, а я просто не был отчет об этом :))   -  person Steven Sproat    schedule 26.01.2010


Ответы (8)


PyInstaller создаст однофайловый исполняемый файл, если вы используете параметр --onefile (хотя на самом деле он извлекает, а затем запускает сам).

здесь есть простое руководство по PyInstaller. Если у вас есть какие-либо вопросы по его использованию, опубликуйте их ...

person Nicholas Riley    schedule 26.01.2010
comment
В последнее время стало намного лучше. Вы можете просто набрать pip install pyinstaller, чтобы установить его, и pyinstaller -w yourpythonscript.py, чтобы скомпилировать его в exe. - person G_Style; 21.05.2019

Используя py2exe, включите это в свой setup.py:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1}},
    windows = [{'script': "YourScript.py"}],
    zipfile = None,
)

затем вы можете запустить его через командную строку / Idle, у меня оба работают. Надеюсь, это поможет

person PPTim    schedule 26.02.2010

я бы порекомендовал перейти на http://sourceforge.net/projects/py2exe/files/latest/download?source=files, чтобы загрузить py2exe. Затем создайте файл Python с именем setup.py. Внутри него введите

from distutils.core import setup
import py2exe
setup(console=['nameoffile.py'])

Сохранить в папке пользователя Также сохраните файл, который вы хотите преобразовать, в той же папке.

Введите командную строку окна запуска в setup.py install py2exe

Он должен напечатать много строк кода ...

Затем откройте папку dist.

Запустите exe файл.

Если есть необходимые файлы для работы программы, переместите их в папку

Скопируйте / отправьте папку dist человеку.

Необязательно: измените имя папки dist

Надеюсь, что это работает!:)

person Bob    schedule 24.12.2012
comment
Это круто, мои скрипты были организованы в несколько папок, которые использовали друг друга, но этот метод улавливал все зависимости. Я проверил pyinstaller-2.0, и он не улавливал зависимости, в результате чего полученный исполняемый файл выводил ошибки, связанные с импортом зависимостей. - person Aravind; 13.08.2013
comment
Я пробовал использовать этот метод, но у меня не получилось. Когда я набрал информацию в командной строке, он просто запустил мой скрипт - person kflaw; 24.09.2013

Я бы присоединился к @Nicholas в рекомендации PyInstaller (с флагом --onefile), но будьте осторожны : не используйте «последний выпуск» PyInstaller 1.3 - ему лет. Используйте предварительную версию 1.4, загрузите ее здесь - или, что еще лучше, код из репозитория svn - установите SVN и запустите svn co http://svn.pyinstaller.org/trunk pyinstaller .

Как подразумевает @Nicholas, динамические библиотеки нельзя запускать из того же файла, что и остальная часть исполняемого файла, но, к счастью, они могут быть упакованы вместе со всеми остальными в " самораспаковывающийся исполняемый файл, который при необходимости распаковывается во временный каталог; PyInstaller хорошо справляется с этой задачей (и со многими другими вещами - py2exe более популярен, но pyinstaller, на мой взгляд, предпочтительнее во всех остальных отношениях).

person Alex Martelli    schedule 26.01.2010
comment
Я просмотрел ссылки, которые вы здесь дали, они больше не доступны. PyIstaller работает не только с файлом, но и с Python 2.7 тоже? - person debugging XD; 20.07.2015
comment
PyInstaller теперь находится на GitHub до версии 2.1 и поддерживает Python 2.7 (среди других выпусков). Конечно, он работает более чем с одним файлом (в качестве входных), но все дело в том, что на выходе получается один файл. См. github.com/pyinstaller/pyinstaller/wiki и ссылки оттуда. - person Alex Martelli; 30.07.2015

1) Загрузите py2exe здесь в соответствии с вашей версией Python.

2) Создайте файл с именем «setup.py» в той же папке, что и скрипт, который вы хотите преобразовать, со следующим кодом:

from distutils.core import setup
import py2exe
setup(console=['myscript.py']) #change 'myscript' to your script

3) Перейдите в командную строку, перейдите в эту папку и введите:

python setup.py py2exe

4) Он создаст папку «dist» в той же папке, что и сценарий. В этой папке находится EXE-файл.

person godlovesdavid    schedule 19.06.2014
comment
Не могли бы вы удалить этот ответ, поскольку он дублирует ответ Боба, опубликованный 2 года назад. - person sricks; 30.06.2016

вы можете проверить, может ли ваше приложение работать под IronPython. Если это так, вы можете скомпилировать его в исполняемый файл http://www.codeplex.com/IronPython.

person fridder    schedule 26.01.2010
comment
Если вы используете IronPython (я разрабатываю в нем коммерческое программное обеспечение, имейте в виду, что для этого требуется .NET Framework 2.0) - person DCC; 26.02.2010

Вы можете создать исполняемый файл из скрипта Python, используя NSIS (систему установки Nullsoft с поддержкой скриптов). Выполните следующие шаги, чтобы преобразовать файлы Python в исполняемый файл.

  • Загрузите и установите NSIS в свою систему.

  • Сожмите папку в .zip файле, который вы хотите экспортировать в исполняемый файл.

  • Запустите NSIS и выберите Installer based on ZIP file. Найдите и укажите путь к вашему сжатому файлу.

  • Укажите свой путь Installer Name и Default Folder и нажмите Создать, чтобы сгенерировать ваш exe файл.

  • Когда это будет сделано, вы можете нажать Test, чтобы протестировать исполняемый файл, или Close, чтобы завершить процесс.

  • Сгенерированный исполняемый файл может быть установлен в системе и может быть распространен для использования этого приложения, даже не беспокоясь об установке необходимого Python и его пакетов.

Для видеоруководства следуйте: Как преобразовать любой файл Python в .EXE

person kgangadhar    schedule 28.04.2019

Вы можете создать установщик для вашего EXE-файла:
1. Нажмите WinKey + R
2. Введите «iexpress» (без кавычек) в окно запуска.
3. Завершите работу мастера для создания программы установки. .
4. Распространите готовый EXE.

person Jack    schedule 09.10.2013
comment
Это не правильно - person sricks; 30.06.2016