Pythonで書いた簡単なスクリプトを手軽に共有したいとき、ユーザー側のPython環境は悩みの種です。
- Pythonのインストールは面倒
 - パッケージのインストールはもっと面倒
 - PyInstaller はウィルス誤検知されるし起動が遅い
 - Nuitka はビルドが大変
 - 本家Pythonの Embeddable Package はpipが入ってない
 
これらを解決してくれる python-build-standalone というプロジェクトがいつの間にか爆誕していました。
実は、uv のPythonのインストールや実行が速いのはこのディストリビューションを使っているからだそうです。
python-build-standalone とは?
- 完全にポータブルなPython環境(レジストリや環境変数に依存しない)
 - 超高速な起動(パス探索や動的読み込みを省き最適化)
 - pipによるパッケージ追加も簡単
 - ユーザーはフォルダを解凍するだけで即使える
 
導入方法
ダウンロード
リリースページ から目的のシステム向けのビルドを入手します。
ファイルが多くて面食らいますが、
- Pythonバージョン
 - CPUアーキテクチャ
 - OS
 - ビルドのバリエーション
 
を選んでダウンロードします。
Windows向けのビルドバリエーションには下記があります。
- 
install_only: 標準的な最小構成 - 
install_only_stripped: デバッグ機能を省いたさらに軽量なもの - 
pgo-full: PGO(プロファイル最適化)が有効なビルド1 
今回は cpython-3.12.11+20250612-x86_64-pc-windows-msvc-install_only.tar.gz を使います。解凍すると下記のようになります。
# 主要なファイル以外は省略
project\
└─ python\
   ├─ python.exe
   ├─ python312.dll
   ├─ Lib\
   └─ DLLs\
pipパッケージのインストール
pipが付属しているので簡単にインストールできます2。
cd python
.\python.exe -m pip install -U pip
.\python.exe -m pip install requests
実行
「それだけ?」って感じですが、既にちゃんと python.exe main.py で実行できるようになっています。
import requests
input("import successful!")
> .\python.exe main.py
import successful!
配布
社内ツールなら、下記のようなフォルダ構成にしておいて、
project/
├─ python/
├─ src/main.py
└─ run.bat
起動用のバッチファイルには下記のようにでも書いておけばOKです。
python\python.exe src\main.py %*
これだけで、パッケージも含めたPython環境と一緒にツールを配布できます。起動も爆速!ぜひお試しあれ。