Open4

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

nozelenozele

JRA-VANデータラボのサービスを利用するためにJV-Linkというソフトが必要。
ActiveX COMサービスでpython経由でもアクセスはできる、が32bit版Pythonが必要となる。

今までは32bit版のAnacondaを使ってたけど仮想環境が必要になるケースをよくわかってなかったので直で色々いれて使ってた。

旧Twitterで見かけたvenvの話題で仮想環境が必要な理由がなんとなくわかったので試してみることにした。

nozelenozele

やりたいのは32bitバージョンと64bitバージョンの切り替え。

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

調べたところ、virtualenvはPython自体のバージョンも管理できるということなので使えそう。

nozelenozele

手順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というスクリプトが走るらしくスクリプト実行権限がなかったので一旦エラーがが出たスクリプト実行権限を設定後は問題なかった。

nozelenozele

手順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)]
になるみたい。