Pythonスクリプトをバイナリ実行可能ファイルにコンパイルする方法


118

PythonスクリプトをWindows実行可能ファイルに変換する必要があります。

Python 2.6をにインストールしましたpython26

私は1つのスクリプトを作成し、それをに保管しましたC:\pythonscript。このフォルダ内には2つのファイルがあります

Setup.pyそして、oldlogs.py(このファイルの必要性をcoversion)

setup.py コードは

from distutils.core import setup
import py2exe

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

oldlogs.pyをexeファイルに変換するにはどうすればよいですか?



完全を期すために、cx_Freezeはこれに使用できるもう1つのツールです(他の回答ですでに述べたPyInstallerとpy2exeとともに)。
Thomas K

回答:


63

または、py2exeの代わりにPyInstallerを使用します。ここが良い出発点です。PyInstallerを使用すると、LinuxおよびMac用の実行可能ファイルを作成することもできます...

ここでは、PyInstallerを使用して問題を簡単に解決する方法を示します。

pyinstaller oldlogs.py

ツールのドキュメントから:

PyInstallerはmyscript.pyを分析し、

  • スクリプトと同じフォルダーにmyscript.specを書き込みます。
  • スクリプトが存在しない場合は、スクリプトと同じフォルダーにフォルダービルドを作成します。
  • ビルドフォルダーにいくつかのログファイルと作業ファイルを書き込みます。
  • 存在しない場合は、スクリプトと同じフォルダーにフォルダーdistを作成します。
  • myscript実行可能フォルダーをdistフォルダーに書き込みます。

distフォルダーには、ユーザーに配布するバンドルされたアプリがあります。


9
cx_Freezeの方が優れており、Python 3.3もサポートしています。
Ashwini Chaudhary

ねえ、これはwineでも動作します。少なくともバージョン3.4までのpythonでは、Windows XPをサポートしています。本当にすばらしい!私は、Fedora Linuxマシンでwinepython 3.4およびpip-Winを使用してWindows実行可能ファイルを作成しました(pyinstaller Webサイトのインストール手順に従ってください)。
erik

3
@AshwiniChaudhary、どちらもクロスプラットフォームのようです。ただし、GitHub星に基づいてどちらを使用するかをすぐに判断する必要がある場合、星数は〜4000、PyInstaller星数cx_Freezeは200です。したがってPyInstaller、より人気があるようで、おそらくより多くのエッジケースがカバーされています。 なぜあなたcx_Freezeはより優れていると思いますPyInstallerか?
alpha_989 2018

PyInstallerと比較して、「cx_Freezeは、アプリケーションのすべてのライブラリが1つの実行可能ファイルに埋め込まれている単一ファイルexeのビルドをサポートしていません。」cx-freeze.readthedocs.io/en/latest/...
テイラーEdmiston

12

私はPyInstallerをお勧めします。単純なpythonスクリプトは、次のコマンドでexeに変換できます。

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

これにより、最終的なexeをビルドするための構成であるyourprogram.specファイルが作成されます。次のコマンドは、構成ファイルから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 )
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.