Hanatare's PaPa

Make life a little richer.

Virtual Space of Hanatare's PaPa

人生をほんの少しだけ充実させる

【Python】複数バージョンのPythonを共存させる方法

今回は異なるバージョンのPythonを1つの環境下で共存させる方法を紹介したいと思います。複数のPythonを使った開発案件を掛け持ちすると、Pythonのバージョンが異なるといったことはよくあります。今回は、案件毎に異なるバージョンのPythonの開発を行う時に、どのように異なるバージョンのPythonを共存させるかを紹介したいと思います。

記事のポイント
  • VENVを使った複数バージョンのPythonを共存
  • 仮想環境下でのpip installエラーとその対策

結論

結論を先にお伝えするとVENVというモジュールを使い、仮想環境を構築して、異なるバージョンのPythonを共存させます。

VENVとは

VENVは、Pythonの仮想環境作るためのモジュールになります。仮想環境といっても、簡易的なもので、設定や構築は非常に簡単です。この記事でも構築手順を後述しています。VENVはインストール済みで、現在使われているPythonの上に構築されます。その上で、現在使われているPythonは分離させて、ライブラリを扱うことを可能にしてくれます。

VENVの設定手順

実行環境

今回の環境と共存させるPythonのバージョンは以下になります。

  • Windows10
  • Python3.11
  • Python3.9

仮想環境構築手順

環境構築の前に、インストール済みのPythonがどれかを確認します。 コマンドプロンプトで、「py --list-paths」と入力することでそれぞのバージョンとインストール先がわかります。

py --list-paths

実行結果

仮想環境を作成

続いて仮想環境で実行させたいPythonのバージョンを指定してvenvを作成します。 コマンドは以下の通り、「py -3.9 -m venv (任意のパス)/venv_py39」すると、指定したパスにvenv_39というフォルダーが作成されます。

py -3.9 -m venv (任意のパス)/venv_py39

実行結果

作成したVENV環境のディレクトリ

作成した仮想環境にアタッチ(起動)

続いて、作成したVenvディレクトリのScript配下にある、「activate」を実行し仮想環境を起動します。activate実行すると、冒頭に作成したVevnディレクトリがカッコ書きで表示されます。

(任意のパス)\venv_py39\Scripts\activate

起動後の画面

仮想環境をデタッチ(停止)する

仮想環境を停止し、抜ける場合は「deactivate」を実行し、仮想環境を停止します。

deactivate

実行結果

仮想環境の構築と手順は以上になります。

環境構築後におこった問題

私はこの後、この仮想環境にライブラリをいくつかインストールしようとしたところ、エラーが発生しました。この記事では、そのエラーと解消方法についても紹介をします。

ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.

仮想環境にアタッチした状態で、ユーザーインストール(pipinstall --user)を実施すると、上記のエラーになりました。

ユーザーインストールとは?

少し、余談になりますが、pipinstallを行う際に 「--user」と入力するとユーザーインストールになります。このオプションはインストール先を管理者権限が必要のない場所に、指定したシステムパッケージをインストールします。

解消方法

仮想環境にアタッチされている状態での、パッケージ追加をする場合は、 「(任意のパス)/venv_py39pyvenv.cfg」 を確認します。このファイルの中にある以下のFalse部分をTrueに変更します。

include-system-site-packages = False

include-system-site-packages = True

この記述の値はデフォルトが、Falseになっている。これは仮想環境にパッケージを追加しないという設定になります。今回のエラーは、「仮想環境上に入れようとしたパッケージが、仮想環境で参照できない」というエラーで、この設定をTrueに変更することで解消できました。

これで、1つのマシン上に複数のPython環境を構築が完了です。

まとめ

今回は、異なるバージョンのPythonを1つの環境下で共存させる方法を紹介しました。手順としては比較的簡単ですが、設定部分や仕組みは奥が深く、しっかり理解して使いたいと感じます。今後も、案件によって違うバージョンのPythonを使う機会は多いと思います。しっかりと理解をして、次につなげていければと思います。