Pythonでpy2exeを使用し.py形式を.exe形式の実行ファイルに変換してみます。
なお、今回は事前にpy2exeライブラリをインストールしています。py2exeライブラリは、Pythonの標準ライブラリではありませんので、事前にインストールが必要です。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■.py形式のファイルを用意する
.py形式を.exe形式の実行ファイルに変換しますが、その前に.py形式のファイルを用意します。このファイルを.exe形式の実行ファイルに変換します。
■コード
print("こんにちは") input("")
今回はprint()関数を使用し、日本語の文字列を出力するスクリプトを書きました。
なお、input()関数を使用し、キーボードを操作しない(入力しない)と、print()関数を出力し続けるようにしてあります。
■作業ディレクトリ(カレントディレクトリ)内にフォルダを作成する
書いたスクリプトを「hello.py」という名前で保存します。この時にPythonが実行されている作業ディレクトリ(カレントディレクトリ)内にフォルダを作っておきます。
今回は作業ディレクトリ(カレントディレクトリ)が「C:\Users\user_\」です。このディレクトリ内に「test」というフォルダを作ります。作ったフォルダに「hello.py」を置きます。
■setup.pyの作成
置いた後に、setup.pyというファイルの作成を行います。
■コード
from distutils.core import setup import py2exe setup(console=['hello.py'])
作成するファイルのコードは、上記になります。setup()の括弧内には「console=[”]」と記述し、”[](角カッコ)”内に、先程の「hello.py」を指定します。
コードを記述後、「setup.py」という名前で保存します。この時、「hello.py」が置かれている「test」というフォルダに保存します。
■.py形式を.exe形式の実行ファイルに変換する
C:\Users\user_>cd test
保存後、Windows10のコマンドプロンプトを起動します。起動後、上記のコマンドを入力し、Enterキーを押します。「test」ディレクトリ内に移動します。
C:\Users\user_\test>python setup.py py2exe
移動後、上記のコマンドを入力し、Enterキーを押します。Enterキーを押すと、.exe形式の実行ファイルへの変換が開始されます。
C:\Users\user_\test>py -3.8 setup.py py2exe
なお、今回はpythonランチャーを使用し、Python Version 3.8.5上にインストールしたpy2exeライブラリを使いますので、上記のコマンドを入力し、Enterキーを押します。
running py2exe 5 missing Modules ------------------ ? _posixshmem imported from multiprocessing.resource_tracker, multiprocessing.shared_memory ? readline imported from cmd, code, pdb ? resource imported from test.support ? win32evtlog imported from logging.handlers ? win32evtlogutil imported from logging.handlers Building 'dist\hello.exe'. Building shared code archive 'dist\library.zip'. Copy c:\program files\python38\python38.dll to dist Copy C:\Program Files\Python38\DLLs\select.pyd to dist\select.pyd Copy C:\Program Files\Python38\DLLs\_bz2.pyd to dist\_bz2.pyd Copy C:\Program Files\Python38\DLLs\_lzma.pyd to dist\_lzma.pyd Copy C:\Program Files\Python38\DLLs\pyexpat.pyd to dist\pyexpat.pyd Copy C:\Program Files\Python38\DLLs\unicodedata.pyd to dist\unicodedata.pyd Copy C:\Program Files\Python38\DLLs\_socket.pyd to dist\_socket.pyd Copy C:\Program Files\Python38\DLLs\_hashlib.pyd to dist\_hashlib.pyd Copy C:\Program Files\Python38\DLLs\_ssl.pyd to dist\_ssl.pyd Copy C:\Program Files\Python38\DLLs\_queue.pyd to dist\_queue.pyd Copy C:\Program Files\Python38\DLLs\_asyncio.pyd to dist\_asyncio.pyd Copy C:\Program Files\Python38\DLLs\_elementtree.pyd to dist\_elementtree.pyd Copy C:\Program Files\Python38\DLLs\_ctypes.pyd to dist\_ctypes.pyd Copy C:\Program Files\Python38\DLLs\_tkinter.pyd to dist\_tkinter.pyd Copy C:\Program Files\Python38\DLLs\_testcapi.pyd to dist\_testcapi.pyd Copy C:\Program Files\Python38\DLLs\_decimal.pyd to dist\_decimal.pyd Copy C:\Program Files\Python38\DLLs\_multiprocessing.pyd to dist\_multiprocessing.pyd Copy C:\Program Files\Python38\DLLs\_overlapped.pyd to dist\_overlapped.pyd Copy DLL C:\Program Files\Python38\DLLs\libffi-7.dll to dist\ Copy DLL C:\Program Files\Python38\DLLs\libcrypto-1_1.dll to dist\ Copy DLL C:\Program Files\Python38\DLLs\tk86t.dll to dist\ Copy DLL C:\Program Files\Python38\DLLs\libssl-1_1.dll to dist\ Copy DLL C:\Program Files\Python38\DLLs\tcl86t.dll to dist\
Enterキーを押すと、上記のメッセージが表示されます。これで.exe形式の実行ファイルへの変換は完了となります。なお、「missing Modules(不足しているモジュール)」と表示されますが、一旦無視します。
■.exe形式の実行ファイルを確認する
変換後、「test」のフォルダ内を確認すると、「dist」フォルダが生成されています。こちらをクリックします。
クリックすると、「dist」フォルダ内に「hello.exe」という.exe形式のファイルが生成されていることが確認できました。
なお、今回は「hello.py」という.py形式のファイルを、.exe形式のファイルに変換しましたので、ファイル名が「hello.exe」となっています。
確認後、「hello.exe」を実行させてみると、「hello.py」という.py形式ファイル内の処理と同じ処理が実行されました。
コメント