プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • 未分類
  • 【Python】pyinstallerでPythonのコードをexe化する。
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Python】pyinstallerでPythonのコードをexe化する。

06.12

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

pyinstallerとは?

Pythonコード、パッケージを全て一つの実行ファイル(exe)にまとめることができるライブラリです。通常のPythonのソースコードだとPythonがインストールされている環境でしか動作させることができません。しかし、exe化することでPythonがインストールされていないような第三者の環境でも動かすことが可能になります。

Pythonだけでなく、場合によっては作成したPythonプログラムで使っているパッケージなどのインストールも必要になりますし、仮にインストールしてもらえるとしてもソースコードで想定しているパッケージのバージョンとインストールバージョンが異なっていたら動かないです。

前提条件、注意点

  • Python3.6以上であること
  • Windowsで作った実行ファイルはWindowsでしか動かないですし、Macで作った実行ファイルはMacでしか動かないです。
  • 64bitOSで作ったファイルは32bitOSでは動かない。逆に32bitOSで作った実行ファイルは64ビットOSで使えます。(上位互換性はないですが、下位互換性はあります。)
  • 公式サイト(https://pyinstaller.org/en/stable/)にサポートされているライブラリ一覧はあるが、サポートされていなくても基本は実行ファイルにまとめることは可能です。
  • Macの場合は他のマシンで作ったexeを実行する場合は警告が出ます。(「システム環境設定」→「セキュリティとプライバシー」にて設定解除してあげる必要があります。)
  • 外部ライブラリを使う場合は一気にファイルサイズが大きくなります。(例えばPandasなど)

インストール

1
pip install pyinstaller

一つの実行ファイルにまとめる

Windowsの場合

1
pyinstaller Pythonスクリプト名 --onefile

上記コマンドを打つと打った場所と同階層に「dist」というフォルダが生成されてその中にexeファイルが生成されます。

1
2
3
4
5
import time
 
print('Hello World')
 
time.sleep(20)

試しに上記のsample.pyというファイルを作成してまとめてみます。

1
pyinstaller sample.py --onefile

distフォルダの中に「sample.exe」という実行ファイルができるので起動するといかのようにコンソールのウインドウが表示されて20秒間起動し続けます。

各種オプション

--noconsole

コンソールアプリケーションだったら問題ないのですが、例えばデスクトップアプリケーションなどを作った場合はコンソールは見せたくないのでそういった場合に使えます。

--icon=アイコン名.ico

exeのアイコンをカスタマイズする場合に使えます。アイコンは画像ファイルをiconに変換するサイトが存在するのでそれで生成するとよいでしょう。ちなみにfavicon画像にもいくつかサイズがあるのですが、対応していないサイズだとうまく表示されない場合があるので注意です。

ファイル名.spec

pythonファイルと同じ階層にspecと付いたファイルが生成されています。これはpythonを実行ファイルにまとめるための設定ファイルになります。pythonコード以外のものをexeに埋め込みたい場合に編集したりします。(例えば、Pythonプログラム内で画像を使っているのであればここに設定しないと埋め込めません。)

スポンサーリンク
  • 2023 06.12
  • miyabisan2
  • コメントを書く
  • Python, 未分類
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2026 07.26

    container query

  2. 2023 06.03

    【Python】Scrapyのコマンド、開発の流れ

  3. 2023 06.04

    【Python】Scrapyで複数ページを操る。

  4. 2026 08.16

    React UIライブラリの歴史

  5. 2023 06.09

    【Python】Scrapy Item、Item Loader、Item pipelineの基本

  6. 2026 08.22

    アクセス解析ツール

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Python】「Jupyter Notebook」と…

【Python】環境構築手法比較

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー