Pythonプログラムを配布するにあたり、インターネットに接続できない かつ PythonをインストールできないWindows環境で使用するには、Windows embeddable package
を使用します。
しかし、Windows embeddable package
には pip
が同梱しておらず、pip
をインストールするために インターネット環境で get-pip.py を入手・実行する手順しか見当たりませんでした。
そこで(正しいか不明ですが)、完全オフラインでEmbeddable Python環境を構築する手順を公開します。
インターネット環境でやること
- 任意のバージョンの
Windows embeddable package
をダウンロード
https://www.python.org/downloads/windows/ - pip の WHL (Wheel) ファイルをダウンロード
https://pypi.org/project/pip/#files - その他、オフライン環境で使いたい Wheel ファイルを入手(割愛)
- get-pip.py は不要。
cmd.exe
curl -o python3.10.11.zip https://www.python.org/ftp/python/3.10.11/python-3.10.11-embed-amd64.zip
curl -o pip-23.0.1-py3-none-any.whl https://files.pythonhosted.org/packages/07/51/2c0959c5adf988c44d9e1e0d940f5b074516ecc87e96b1af25f59de9ba38/pip-23.0.1-py3-none-any.whl
オフライン環境でやること
-
Windows embeddable package
を解凍 -
current.pth
を作成、python〇〇._pth
を編集 - pip-xxxx.whl を解凍し、pipフォルダをカレントフォルダに配備
-
python〇〇/python -m pip install pip --upgrade --no-index pip-xxxx.whl
で pip をインストール
cmd.exe
rem 解凍コマンドとして 7z.exe にパスが通っているものとする。
dir /b
pip-23.0.1-py3-none-any.whl
python3.10.11.zip
7z x python3.10.11.zip -opython3.10.11
7z x pip-23.0.1-py3-none-any.whl -i!pip/
echo import sys; sys.path.append('')> python3.10.11\current.pth
echo import site>> python3.10.11\python310._pth
python3.10.11\python -m pip install --force --upgrade --no-index --no-warn-script-location pip-23.0.1-py3-none-any.whl
以上でオフライン環境下で Embeddable Python に pip が導入されます。
必要なモジュールは --no-index
をつけてあげれば、オフライン環境でも入れ放題。
インストールもしていないので、Pythonフォルダごと持ち運んだりバッサリ捨てたりできます。
enjoy!