0. はじめに
0-1. やること
Windowsで出来る限り環境を汚さず、Python環境を乱立させます。
0-2. 動作検証環境
Window 10 Pro Ver 1909 (Build 18363.1198)
1. 手順
1-1. 作業フォルダの作成
お好みでフォルダを作成する。
C:\Python
├ env ←Python格納フォルダ
└ project ←スクリプトファイル(*.py)格納フォルダ
1-2. Pythonのダウンロード
以下のURLより、使用したいバージョンの「embeddable zip file」をダウンロードする。
例:python-3.8.6-embed-amd64.zip
https://www.python.org/downloads/windows/
1-3. 資材の格納
ダウンロードしたzipファイルを解凍し、envフォルダ配下に格納する。
env直下にpython.exe等を配置するのではなく、お好みの環境名称のサブフォルダを切って格納してください。
以下の例では、「python-3.8.6」という名称のフォルダ配下に個々のファイルがあるイメージです。
C:\Python
├ env
│ └ python-3.8.6 ←例えば、「python-3.8.6」という名称のフォルダにして格納する。
└ project
1-4. 起動用batの作成
デスクトップ等、起動しやすい場所に以下を作成する。
1-3で作成した環境名(フォルダ名)をbatファイル名にしてください。
@echo off
cls
set envname=%~n0
set work_dir=C:\Python\project
set python_dir=C:\Python\env\%envname%
set script_dir=C:\Python\env\%envname%\Scripts
set PATH=%python_dir%;%script_dir%;%PATH%
cd /d %work_dir%
cmd /k title %envname%
1-5. pipのインストール
1-5-1. get-pip.pyの取得
以下のURLよりget-pip.pyをダウンロードし、projectフォルダに格納する。
https://bootstrap.pypa.io/get-pip.py
C:\Python
├ env
│ └ python-3.8.6
└ project
└ get-pip.py
1-5-2. コンフィグ修正
C:\Python\env\python-3.8.6\python38._pthをテキストエディタで開き、5行目のコメントアウトを解除(#を削除)する。
フォルダ名・環境名は適宜読み替えてください。
python**._pthの**はPythonのバージョンにより異なります。
(Python 3.8.*ならpython38._pth、Python 3.9.*ならpython39._pth)
1-5-3. get-pip.pyの実行
で作成したbatを起動し、pipをインストールする。
> python get-pip.py
1-6. 環境を乱立させる!
同様の手順でenv配下にお好きな環境を作成する。
削除したければフォルダ削除でOK。
環境の起動(切り替え?)は1-4で作成するbatの選択を変えるだけ。
(batのフォルダ名とenv配下のフォルダ名を合わせるだけ)
C:\Python
├ env
│ ├ python-3.8.6
│ ├ python-3.7.9
│ ├ myenv1
│ ├ myenv2
│ └ myenv3
└ project
└ get-pip.py
2. ポイント
- embeddable版にはインストール版と異なる制約もありますが、ちょっと触ってみるくらいであれば問題なさそうです。
- python資材そのものを分けて使用する為、venv等の仮想機能は使用しません(できません)。その代わり、バージョン自体を混在させる(Python 3.7とPython 3.8等)ことは容易です。
- 資材を置くだけなので本来はフルパスで呼び出すかパスを通さないと実行できません。この手順内ではbatで環境変数をいじっていますが、同プロンプト内でしか有効になりません。(故に環境を汚しません)
- 意図した環境が動いているか自信がない場合には、pip -Vコマンドを実行すればインストール先フォルダパスも表示されるので確認できます。(一応コマンドプロンプトの枠にも表示しています。)
- 環境名(フォルダ名)を変更した場合には、pipを再インストール(get-pip.pyを再実行してください。
- project配下に自作のスクリプトを格納していくイメージです。同フォルダ内の別スクリプトファイルをimportする場合には、適切にパスを追加するか、各環境のフォルダ直下に以下のpthファイル(ファイル名は任意)を作成しておけば解消できるようです。
import sys; sys.path.append('')
3. 参考
Windowsで環境を極力汚さずにPythonを動かす方法 (Python embeddable版)
https://qiita.com/rhene/items/68941aced93ccc9c3071
超軽量、超高速な配布用Python「embeddable python」
https://qiita.com/mm_sys/items/1fd3a50a930dac3db299