Pythonでpy2exeを使用し.py形式を.exe形式の実行ファイルに変換する

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形式ファイル内の処理と同じ処理が実行されました。

コメント

タイトルとURLをコピーしました