Pythonでアプリ化(exe化)する方法

Python

本記事ではPythonでアプリ化する方法を解説します。
Pythonでアプリ化する際にはPyinstallerライブラリを使用します。

アプリ化のメリット

アプリ化のメリットは主に下記の二点です。

  • Pythonやライブラリをインストールしなくとも実行できる
  • クリックで起動できる(コマンドプロンプトやWindows PowerShellを使う必要がない)

これらがどう便利なのか考えてみましょう。

もし、あなたがPythonで作成したコードを知り合いに配りたいと考えた場合、まず最初に思い浮かぶ方法は

  1. Pythonコードを配る
  2. 環境準備方法(Pythonやライブラリのインストール方法)を伝え、その通りに実行してもらう
  3. コードの実行方法(コマンドプロンプトやWindows PowerShellの起動方法、仮想環境の有効化、Pythonの起動)を伝え、実行してもらう

という方法です。もちろん、その知り合いがプログラミングに詳しければ上記の手順でも問題ないでしょう。

しかし、インストールの手順やコマンドプロンプトからの起動方法などを多くの人はしらないので、プログラミングに詳しくない人に先ほどのような手順を実行してもらうのは案外難しいです。

そんな時にアプリ化をしてexeファイルとして配布すれば、相手はただexeファイルをクリックするだけで処理を実行できます

Pyinstallerの準備

ではPyinstallerを準備しましょう。コマンドプロンプトかWindows PowerShellを起動して下記コマンドでPyinstallerのインストールが可能です。

pip install pyinstaller

アプリ化の実行

Pyinstallerの準備が完了したらさっそくアプリ化を実行してみましょう。

下記でスクレイピングに必要なライブラリをインストールします。

pip install requests bs4

試しに下記のコードをアプリ化することを考えます。
下記はYahoo newsのタイトルを一覧化しファイルに保存する処理を行っています。

# ①ライブラリのインポート
import requests
from bs4 import BeautifulSoup

# ①yahoo newsの取得
url = 'https://news.yahoo.co.jp/topics/top-picks'
res = requests.get(url)

# ③yahoo newsのパースしタイトルのみをリスト化
soup = BeautifulSoup(res.content, "lxml", from_encoding='utf-8')

title_l = []
for i, item in enumerate(soup.select('.newsFeed_item'), 1):
    if title := item.select_one('.newsFeed_item_title'):
        title_l.append(title.text+'\n')

# ④yahoo newsタイトル一覧をファイルに保存
with open("title.txt", mode="a", encoding='utf-8',  newline='\n') as f:
    f.writelines(title_l)
タイムラインのタイトル
  • ライブラリのインポート

    ライブラリをインポートする

  • yahoo newsの取得

    yahoo newsのURLから記事を取得する

  • yahoo newsのパースしタイトルのみをリスト化

    yahoo newsのタイトルのみを抽出します。
    詳しくはこちらの記事で解説しております。

  • yahoo newsタイトル一覧をファイルに保存

    title.txtという名前のファイルで先ほどのタイトル一覧を保存しております。

上記のファイルを作成したら下記コマンドをコマンドプロンプトかWindows PowerShellから実行してアプリ化を実行します。

pyinstaller main.py --onefile

pyinstallerの第一引数にはアプリ化したいファイル名を指定します。そして–onefileというオプションを付与します。これは関連するファイルをひとまとめにするという意味です。

上記を実行すると、同じ階層にdistフォルダが作成され、その中にアプリが作成されます。今回であればmain.exeという名前で作成されています。

アプリ化の方法は以上です。アプリ化を覚えておくと、自分で作ったコードを社内の人に配ることも容易になるので、業務効率化に非常に役立ちます!

楽天Kobo電子書籍ストア
¥2,420 (2025/03/20 01:49時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場
タイトルとURLをコピーしました