Pythonの仮想環境

プログラム

pythonの仮想環境で、別のバージュンのpythonをインストールしたい

Pythonの仮想環境で別のバージョンのPythonを利用するには、pyenv のようなPythonバージョン管理ツールと、Pythonに標準で付属している venv を組み合わせるのが最も一般的で強力な方法です。

pyenv を使うと、1つのシステム内に複数のPythonバージョン(例: 3.9, 3.10, 3.11)を簡単にインストールし、プロジェクトごとに使用するバージョンを切り替えることができます。


## pyenv と venv を使った手順

この方法では、まず pyenv で使いたいバージョンのPythonをPCにインストールし、次にそのバージョンを使ってプロジェクト用の仮想環境 (venv) を作成します。

ステップ 1: pyenv をインストールする

まだ pyenv をインストールしていない場合は、お使いのOSに合わせてインストールします。

  • macOS (Homebrewを使用):Bashbrew update brew install pyenv
  • Windows: Windowsでは、pyenv-win という代替ツールを使用します。詳細はリンク先のドキュメントを参照してください。

インストール後、シェルの設定ファイル (.zshrc, .bash_profile など) に pyenv を初期化するコマンドを追加する必要があります。

ステップ 2: 使いたいPythonバージョンをインストールする

次に、pyenv を使ってプロジェクトで利用したいPythonのバージョンをインストールします。

  1. インストール可能なバージョン一覧を確認:Bashpyenv install --list
  2. 特定のバージョンをインストール (例: 3.10.14):Bashpyenv install 3.10.14 これで、お使いのPCにPython 3.10.14がインストールされました。

ステップ 3: プロジェクトで使用するPythonバージョンを指定する

プロジェクト用のディレクトリを作成(または移動)し、その中で使用するPythonのバージョンを pyenv で指定します。

Bash

# プロジェクト用のディレクトリに移動
cd my-new-project

# このディレクトリではPython 3.10.14 を使うことを宣言
pyenv local 3.10.14

このコマンドを実行すると、ディレクトリ内に .python-version というファイルが作成され、このディレクトリにいる間は自動的にPython 3.10.14が使われるようになります。

ステップ 4: 仮想環境を作成して有効化する

最後に、pyenv で指定したバージョン(この例では3.10.14)のPythonを使って、標準の venv 機能で仮想環境を作成します。

  1. 仮想環境の作成 (環境名は慣習的に .venv が多い):Bashpython -m venv .venv ポイント: この python コマンドは、pyenv local で設定した 3.10.14 を自動的に参照します。
  2. 仮想環境の有効化 (アクティベート):
    • macOS / Linux:Bashsource .venv/bin/activate
    • Windows (コマンドプロンプト):Bash.\.venv\Scripts\activate

これで完了です!ターミナルのプロンプトの先頭に (.venv) と表示され、この仮想環境内ではPython 3.10.14が使われます。pip でパッケージをインストールしても、この環境内にのみ保存されます。


## (代替案) conda を使う方法

データサイエンス系の開発では、conda (Anaconda / Miniconda) も非常に人気があります。conda は、Pythonのバージョン管理と仮想環境管理を同時に行うことができます。

conda がインストールされていれば、以下のコマンド1つで特定のPythonバージョンを持つ新しい環境を作成できます。

Bash

# "myenv" という名前で、Python 3.9 を持つ環境を作成
conda create --name myenv python=3.9

# 作成した環境を有効化
conda activate myenv

conda は特に、科学技術計算ライブラリなど、複雑な依存関係を持つパッケージのインストールに強いというメリットがあります。

どちらの方法を選ぶかは好みやプロジェクトの性質によりますが、一般的なWeb開発などでは pyenv + venv の組み合わせが広く使われています。

コメント