MENU

【Pythonスクリプト配布】exe化不要の「embeddable python」で環境ごと配布する方法

「Pythonで便利な業務効率化ツールを作った!さあ、同僚にも使ってもらおう!」…と思ったものの、同僚のPCにはPythonがインストールされておらず、どうやって配布すれば良いか悩んでいませんか?

Pyinstallerでexe化する方法は有名ですが、少しコードを修正するたびに再配布するのが地味に面倒だったりしますよね。

そんな悩みを解決するのが、「embeddable python」です!これは、Pythonの実行環境をフォルダごと、まるっと相手に渡せる優れもの。これを使えば、exe化の手間なく、配布後も手軽にコードを修正できます。

今回は、この「embeddable python」の魅力と使い方を分かりやすく解説します!

この記事でわかること
  • embeddable pythonとは何か、Pyinstallerとの違い
  • embeddable pythonのダウンロードと基本的な使い方
  • pipを有効化して、pandasなどの外部ライブラリを追加する方法
  • バッチファイルを使って、ダブルクリックでPythonスクリプトを実行させる方法
目次

「embeddable python」とは?Pyinstallerとの違いと環境ごと配布

まず、「embeddable pythonって何?」というところから始めましょう。

簡単に言うと、「インストール不要で使える、持ち運び可能なPython実行環境」です。通常のPythonインストーラーとは違い、PCにPythonをがっつりインストールするのではなく、解凍したフォルダ内だけで完結するのが大きな特徴です。

有名なPyinstallerが「Pythonスクリプトを実行ファイル(.exe)に変換するツール」であるのに対し、embeddable python「Pythonの実行環境そのものを配布する」というアプローチを取ります。この「環境ごと配布」が最大のポイントです。

embeddable pythonPyinstallerの比較

特徴embeddable pythonPyinstaller
配布形式フォルダ一式単一のexeファイル
ソースコード見える(編集可能)見えない(バイナリ化)
配布後の修正簡単(テキストエディタでOK)面倒(再exe化が必要)
手軽さ最初の準備ができれば
その後は楽
exe化に少し時間がかかる
ウイルス検知されにくいまれに誤検知される

それでは早速、ダウンロードしてexe化不要のPython配布を実施してみましょう!

embeddable pythonのダウンロードと準備

まずはダウンロードして、準備を進めましょう。手順は以下のとおりです。

準備手順
  1. Python公式サイトのダウンロードページにアクセスします。
  2. Stable Releases」の中から、利用したいバージョンの「Windows embeddable package (64-bit)」(または32-bit)をクリックしてzipファイルをダウンロードします。
  3. ダウンロードしたzipファイルを、任意のフォルダに解凍します。

ダウンロードページに移動すると、以下のような画面になるため、「Windows embeddable package 」をダウンロードしましょう!

ダウンロードしたzipファイルを解答すると、以下のようにいろいろなファイルが入っています。この後の実行では、この中の「python.exe」を使用します。

Pythonスクリプトを「exe化不要」で実行してみる

解凍したフォルダの中に、簡単なPythonスクリプトを置いて動かしてみます。

【コード例: hello.py

# hello.py
print("Hello, embeddable python!")
print("これはインストール不要のPython環境から実行されています。")

input("Enterキーを押すと終了します...")

このhello.pyを、先ほど解凍したフォルダ(python.exeがある場所)に保存します。

次に、コマンドプロンプトやPowerShellでそのフォルダに移動し、以下のコマンドを実行します。

./python.exe hello.py

【試した結果】
コマンドプロンプトに以下のように表示されれば成功です! PCにPythonをインストールしていなくても、コマンドが正常に実行されました。これだけでも、標準ライブラリだけで動く簡単なツールなら配布できますね。

Hello, embeddable python!
これはインストール不要のPython環境から実行されています。
Enterキーを押すと終了します...

Python配布の弱点を克服!pipで外部ライブラリも取得

embeddable pythonの初期状態には、pandasopenpyxlといった外部ライブラリをインストールするためのpipコマンドが入っていません。

これではデータ分析やExcel操作ができず、Python配布の方法としては少し力不足です。でも大丈夫。

簡単な手順でpipを有効化し、ライブラリも環境ごと配布できるようになります!

pip有効化の第一歩:.pthファイルを編集する

解凍したフォルダ内に、python3XX._pth(例: python313._pth)というファイルがあります。このファイルが、Pythonがライブラリをどこから読み込むかを設定しています。

まずは以下の手順で、pip有効化の準備をしていきましょう!

手順1.python3XX._pthをメモ帳などのテキストエディタで開きます。

手順2.#import siteと書かれた行のコメントアウト(#)を削除します。

【変更前】

python313.zip
.
# Uncomment to run site.main() automatically
#import site

【変更後】

python313.zip
.
# Uncomment to run site.main() automatically
import site

このimport siteを有効にすることで、site-packagesフォルダ(pipでインストールしたライブラリが保存される場所)をPythonが認識できるようになります。

get-pip.pyでpipをインストールする

次に、pip自体をインストールします。

手順1.公式サイト(https://pip.pypa.io/en/stable/installation/)からget-pip.pyをダウンロードします。

ダウンロード方法は、ページ内のget-pip.pyへのリンクを右クリックして「名前を付けてリンク先を保存」を選択します。(クリックしても中身が開くだけです。)
※デフォルトで、get-pip.pyという名前担っていますので、そのまま保存してください。

手順2.ダウンロードしたget-pip.pyを、embeddable pythonのフォルダに移動します。

手順3.コマンドプロンプトで、以下のコマンドを実行します。

.\python.exe get-pip.py

以下のように表示されれば成功です!警告がでていますが、「これは環境変数Pathが通っていません」というもので、無視してしまって問題ないです。

これでpipのインストールは完了です! LibフォルダやScriptsフォルダが新しく作られているはずです。

あたらしくライブラリをインストールするには以下のコマンドを実行!
python.exe -m pip install ◯◯(ライブラリ名)

pandasをインストールしてデータ分析環境を構築

それでは、実際にpandasをインストールしてみましょう。

.\python.exe -m pip install pandas

【コード例: check_pandas.py pandasが使えるか確認する簡単なスクリプトを実行してみましょう!

# check_pandas.py
import pandas as pd

print(f"pandasのバージョン: {pd.__version__}")

# 簡単なデータを作成して表示
data = {'商品': ['リンゴ', 'ミカン'], '価格': [120, 80]}
df = pd.DataFrame(data)

print("--- データフレームの表示 ---")
print(df)
print("--------------------------")

input("Enterキーを押すと終了します...")

【試した結果】
コマンドプロンプトで.\python.exe check_pandas.pyを実行し、pandasのバージョンとデータフレームが表示されれば成功です!これで、データ分析やExcel操作など、より複雑なツールも環境ごと配布できるようになりました。

pandasのバージョン: 2.2.2  (←バージョンは環境によります)
--- データフレームの表示 ---
   商品   価格
0  リンゴ  120
1  ミカン   80
--------------------------
Enterキーを押すと終了します...

実践的なPython配布!バッチファイルでexe化なしの簡単実行

さて、これまでの方法だと、配布相手にもコマンドプロンプトでコマンドを打ってもらう必要があります。これは少し不親切ですよね。

そこで、バッチファイル(.bat)を使い、exe化不要でダブルクリック実行できる、より実践的なPython配布形式に仕上げましょう。

さらに、Python環境と自作スクリプトのフォルダを分けることで、構成をスッキリさせます。

フォルダ構成を整理する

まず、配布用のフォルダ(例: my_tool)を作成します。その中に、先ほど準備したembeddable pythonのフォルダを丸ごと入れ、python_envのような名前に変更します。

そして、実行したいPythonスクリプト(check_pandas.py)はpython_envの外に置きます。

ダブルクリックで実行!バッチファイルの書き方

次に、以下の内容でrun.batのような名前のファイルを作成し、check_pandas.pyと同じ階層に保存します。

【コード例: run.bat

@echo off
rem カレントディレクトリをバッチファイルのある場所に変更
cd /d %~dp0

rem python_envフォルダ内のpython.exeを指定してスクリプトを実行
.\python_env\python.exe check_pandas.py

rem 実行後にウィンドウがすぐ閉じないように待機させる
pause
batファイルのコマンド解説
  • @echo off: 実行中のコマンドを非表示にします。
  • cd /d %~dp0: このおまじないを入れておくと、バッチファイルをどこから実行してもパスがずれるのを防げます。
  • .\python_env\python.exe check_pandas.py: python_envフォルダの中にあるpython.exeを直接指定して、スクリプトを実行します。
  • pause: 「続行するには何かキーを押してください…」と表示し、ウィンドウがすぐに閉じるのを防ぎます。

最終的なフォルダ構成と配布

これで、my_toolフォルダをzipで圧縮して同僚に渡せば、相手はrun.batをダブルクリックするだけでツールを使えます。もしスクリプトに不具合があっても、check_pandas.pyを直接編集して修正できるので、メンテナンスが非常に楽になります!

また、Python環境とスクリプトが分かれているので、修正する際もcheck_pandas.pyをすぐに見つけられて楽になりますね!

【試した結果】
最終的なフォルダ構成はこのようになります。この一式を渡すだけでOKです。

my_tool/
│
├── python_env/  <-- embeddable python一式を入れる
│   ├── python.exe
│   ├── pythonw.exe
│   ├── python312.dll
│   ├── python312._pth (編集済み)
│   ├── vcruntime140.dll
│   ├── Lib/
│   └── Scripts/
│
├── check_pandas.py   (自作スクリプト)
└── run.bat           (実行用バッチファイル)

run.batをダブルクリックすると、黒い画面(コマンドプロンプト)が立ち上がり、check_pandas.pyの実行結果が表示されます。とても簡単ですね!

まとめ:「embeddable python」はexe化以外のpython配布方法

今回は、embeddable pythonを使ったPythonプログラムの配布方法について解説しました。

試してみて分かったのは、embeddable pythonは「手軽さ」と「柔軟性」のバランスが非常に良いということです。Pyinstallerでのexe化は、完成したツールをシンプルに配布するには最適ですが、開発途中や頻繁な修正が予想されるツールには、「環境ごと配布」できてコードも直接いじれるembeddable pythonの方が圧倒的に便利だと感じました。

Pyinstallerembeddable pythonの使い分け
  • embeddable pythonが向いているケース(環境ごと配布)
    • 社内など、信頼できる相手への配布
    • 配布後もコードの修正・改善が予想される場合 (exe化不要のメリット大)
    • 複数のツールやライブラリをまとめて配布したい場合
  • Pyinstallerが向いているケース(exe化)
    • ソースコードを見せたくない場合
    • 単一の実行ファイルとして、シンプルに配布を完結させたい場合
    • PCに詳しくない人へ、ダブルクリックだけで動くものを渡したい場合

Pythonでの業務効率化ツールの配布に悩んでいる方は、ぜひこのexe化不要のPython配布方法、embeddable pythonを試してみてください!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

非IT職のデスクワーカーです。
簡単な業務効率化やデータ分析にPythonをよく活用しています。
このブログを通してAI技術を身に着け、より業務効率化や新しいものを作りたいと考えています。

目次