virtualenvで32bitと64bitのpythonを使い分けてみた。

JRA-VANデータラボのサービスを利用するためにJV-Linkというソフトが必要。
ActiveX COMサービスでpython経由でもアクセスはできる、が32bit版Pythonが必要となる。
今までは32bit版のAnacondaを使ってたけど仮想環境が必要になるケースをよくわかってなかったので直で色々いれて使ってた。
旧Twitterで見かけたvenvの話題で仮想環境が必要な理由がなんとなくわかったので試してみることにした。

やりたいのは32bitバージョンと64bitバージョンの切り替え。
JV-Llinkを操作するときは32bitバージョンが必要だが、普段使いは64bitバージョンで問題がない。
仮想環境で切り替えられるのでは?と思ったが、
話題に上がってたvenvは元とするpythonのバージョンは管理できない(変更できない)のでできない。
調べたところ、virtualenvはPython自体のバージョンも管理できるということなので使えそう。

手順1 pythonをインストール
python 3.12.6の 32bitバージョンと64bitバージョンをインストール
64bitバージョンのほうにパスを通しておく。
手順2 virtualenvをインストール
pip install virtualenv
上記コマンドでインストール。
virtualenvは64bitバージョンのほうにインストールされる。
手順3 32bitバージョンの仮想環境を作る
64ビットのpythonのフォルダ名はpython312
64ビットのpythonのフォルダ名はpython312-32なので
virtualenv -p python312-32 py32
上記コマンドで32bit pythonのpy32という名前の仮想環境を作る。
コマンド実行するとカレントパスに py32というフォルダができる。
手順4 仮想環境を有効にする
/py32/Scripts/activate
上記コマンドを実行して有効にする。
自分の場合はWindowsのパワーシェル上で実行したが
activate.ps1というスクリプトが走るらしくスクリプト実行権限がなかったので一旦エラーがが出たスクリプト実行権限を設定後は問題なかった。

手順5 本当に32bitで動いている?
有効にした仮想環境のpythonが32bit Versionなのか以下で調べた。
といってもターミナルにpythonと打ち込むだけ。
(py32) C:....> python (+ Enter)
Python 3.12.6 (tags/v3.12.6:a4a2d2b, Sep 6 2024, 19:51:05) [MSC v.1940 32 bit (Intel)] on win32
ちなみに仮想環境を使わないときは
Python 3.12.6 (tags/v3.12.6:a4a2d2b, Sep 6 2024, 20:11:23) [MSC v.1940 64 bit (AMD64)] on win32
32bitのpythonが動いている場合だと[MSC v.1940 32 bit (Intel)]
64bitのpythonが動いている場合だと [MSC v.1940 64 bit (AMD64)]
になるみたい。