Как скомпилировать скрипт Python в двоичный исполняемый файл


118

Мне нужно преобразовать скрипт Python в исполняемый файл Windows.

У меня установлен Python 2.6 в python26.

Я создал один сценарий и сохранил его C:\pythonscript. Внутри этой папки два файла

Setup.pyи oldlogs.py(этот файл требует прикрытия)

setup.py код

from distutils.core import setup
import py2exe

setup(console=['oldlogs.py'])

Как преобразовать oldlogs.py в exe-файл?



Для полноты, cx_Freeze - еще один инструмент, который вы можете использовать для этого (вместе с PyInstaller и py2exe, о которых уже упоминалось в других ответах).
Thomas K

Ответы:


63

Или используйте PyInstaller как альтернативу py2exe . Вот хорошая отправная точка . PyInstaller также позволяет создавать исполняемые файлы для Linux и Mac ...

Вот как можно довольно легко использовать PyInstaller для решения данной проблемы:

pyinstaller oldlogs.py

Из документации инструмента:

PyInstaller анализирует myscript.py и:

  • Записывает myscript.spec в ту же папку, что и сценарий.
  • Создает сборку папки в той же папке, что и сценарий, если она не существует.
  • Записывает файлы журналов и рабочие файлы в папку сборки.
  • Создает папку dist в той же папке, что и скрипт, если она не существует.
  • Записывает исполняемую папку myscript в папку dist.

В папке dist вы найдете связанное приложение, которое вы раздаете своим пользователям.


9
cx_Freeze лучше, поддерживает даже python 3.3.
Ашвини Чаудхари

Эй, это работает даже с вином , по крайней мере, до версии Python 3.4, которая поддерживает Windows XP. Действительно здорово! Я создал исполняемый файл Windows с вином , python 3.4 и pip-Win (просто следуйте инструкциям по установке на веб-сайте pyinstaller) на моем компьютере с Fedora Linux.
Эрик

3
@AshwiniChaudhary, Оба кажутся кроссплатформенными .. однако, если бы мне пришлось быстро судить, какой из них использовать, только по GitHubзвездам, PyInstallerимеет ~ 4000 звезд, cx_Freezeимеет 200 звезд. Так PyInstallerкажется более популярным и, вероятно, охватывает больше крайних случаев. почему ты думаешь cx_Freezeлучше чем PyInstaller?
alpha_989

Обратите внимание, что по сравнению с PyInstaller, «cx_Freeze не поддерживает создание единого файла exe, в котором все библиотеки для вашего приложения встроены в один исполняемый файл». cx-freeze.readthedocs.io/en/latest/…
Тейлор Эдмистон

12

Я рекомендую PyInstaller , простой скрипт python можно преобразовать в exe с помощью следующих команд:

utils/Makespec.py [--onefile] oldlogs.py

который создает файл yourprogram.spec, который представляет собой конфигурацию для создания окончательного exe. Следующая команда строит exe из файла конфигурации:

utils/Build.py oldlogs.spec

Больше можно найти здесь


1
# -*- mode: python -*-

block_cipher = None

a = Analysis(['SCRIPT.py'],
             pathex=[
                 'folder path',
                 'C:\\Windows\\WinSxS\\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_50c6cb8431e7428f',
                 'C:\\Windows\\WinSxS\\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_c4f50889467f081d'
             ],
             binaries=[(''C:\\Users\\chromedriver.exe'')],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='NAME OF YOUR EXE',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.