Windowsで特定バージョンのPythonを公式から導入し、venv仮想環境を構築する方法

「Pythonで特定のバージョンを指定して仮想環境(venv)を作りたいが、そもそもそのバージョンのPythonがPCに入っていなくてエラーになる」というケースを解決するための手順書です。

今回は例としてPython 3.8を導入しますが、他のバージョンでも手順は全く同じです。

1. Python公式からインストーラーをダウンロードする(すでに入っていればスキップ)

まずは、ターゲットとなるバージョンのPythonインストーラーを取得します。

  1. Python公式のダウンロードページ(Python Source Releases)にアクセスします。
  2. ページをスクロールし、「Looking for a specific release?」のリスト、または「View full list of downloads」から目的のバージョン(例: Python 3.8.x)を探します。比較的新しい環境で特に制約がない場合は、Python version Maintenance statusの状況を見つつステーブル版が良いでしょう。
  3. 目的のバージョンの「Download」をクリックします。
  4. 遷移先ページの一番下にある「Files」テーブルから、Windows用のインストーラーを選択してダウンロードします。
    • 推奨: Windows installer (64-bit)
    • 古いバージョンだとinstall.exeの配布がセキュリティの観点から行われていない場合が多いです。そのばあいは、tar.xz(圧縮ファイル)でdlしてビルドする必要があります
python公式ダウンロードページ

python ダウンロードページ

躓きポイント:どれを選べばいいかわからない 近年のWindows(64bit OS)であれば、基本的には Windows installer (64-bit) を選べば間違いありません。embeddable packageは他プログラムへの組み込み用なので、通常開発では使用しません。
過去バージョンを使いたいときは、上の画像の下側に並んでいます。ここにない(めったにないと思いますがもっと古い)バージョンを使いたい場合はgithubなどのリポジトリを探す必要があります。

2. Pythonのインストールと環境変数の設定(すでに入っていればスキップ)

2.1 インストーラがある場合

最新版のサポート在りバージョンだと pythonのインストーラがついてくるのでそれでダウンロードできる。

遷移後のページの下部にそれぞれのOSへのダウンロードファイルがあります。
上側ではなく、下側の表のほうに installer.exeがあります。

ダウンロードした install.exeを起動してインストールしてください。

躓きポイント:PATHの通し忘れ installerでインストールすると自動的にPATHに追加されますが、インストールマネージャーでインストールした場合は、 add command directory to your PATH now?の質問にy (yes)ではなくN(No)と入力した場合、コマンドプロンプト等から python コマンドで呼び出せなくなります。この場合、手動で環境変数を設定する必要があります。よくわからなければ一度アンインストールしてやり直すと確実です。

2.2 インストーラがない場合 tar.xz(開発者向けの方法)

古いバージョンのサポートなしだと pythonのインストーラがついてこないので、自分でビルドする必要がある。

古いバージョンや特定のバージョンではinstallerが配布終了している場合があります。(例:python3.8.10はinstallerが配布されているが python3.8.20では配布されていないなどバージョンによります)

こstallerが配布終了している場合があります。(例:python3.8.10はinstallerが配布されているが python3.8.20では配布されていないなどバージョンによります)
このときは、マイナーバージョンを変えてみてインストーラがあるバージョンを探すのが一番楽です。

もし、どうしても特定のマイナーバージョンを入れたい場合は、まずtar.xzをダウンロード。Source releaseとして公開(ソースコードだけ)されているので、展開し、自身の環境でビルドしなおす必要があります。ビルドできたら、自身のわかりやすい場所( user/programs/Python3-X/などに配置し、 その中にあるpython3.x.exeへのパスをwindowsの設定から”環境変数への追加”を行う必要があります)

3. インストールの確認と複数バージョンの切り替え

正しくインストールされたか、コマンドプロンプト(またはPowerShell)を開いて確認します。
以下のようなコマンドを実行してください。バージョン部分(-3.8はインストールしたバージョンに合わせてください、3.12なら py -3.12 -Vになります)

py -3.8 -V

※「Python 3.x.x」とバージョンが表示されれば成功です。

躓きポイント:python -V だと違うバージョンが出る PCに既に別のPython(例: 3.11など)が入っている場合、単に python と打つとそちらが優先して起動してしまいます。 Windowsでは、py -[バージョン] (ランチャー機能)を使うことで、特定のバージョンを明示的に呼び出すことができます。

4. 特定バージョンを指定した venv の作成

ここからが本題です。先ほど入れたPython 3.8を指定して、プロジェクト専用の仮想環境を作ります。

  1. 仮想環境を作りたいプロジェクトのディレクトリ(フォルダ)に移動します。
    cd path/to/your/project
  2. バージョンを明示してvenv を作成するコマンドを実行します。
     py -3.8 -m venv .venv
  3. ディレクトリ内に .venv フォルダが生成されていることを確認します。

【コマンドプロンプト/PowerShellの場合】

// Xは、インストールされたpythonバージョンに合わせてください。
py -3.X -m venv .venv

【Vscodeの場合】

VScodeで仮想環境を使う場合は、pythonファイルを実行する環境を画面右下から選び、新規作成時は上側に入力ポップアップが出るので、
create Virtural Environment
→ venv (Quicを選ぶと最新版で作られるので、古いバージョンを選ぶときは venv Manages virtual environments created by ‘venv’ を選ぶ必要があります)
→ Custom
→ 作りたいバージョンを指定 (ここではインストールされたpythonバージョン一覧が出ます。もし無い場合は VScodeを再起動してください)

vscodeで仮想環境を作るときのバージョン指定

バージョン指定

5. 仮想環境の有効化(アクティベート)

作成した仮想環境を有効化して、その中で作業を行います。

【コマンドプロンプトの場合】

.venv\Scripts\activate

【PowerShellの場合】

.venv\Scripts\Activate.ps1

有効化されると、プロンプトの先頭に (.venv) と表示されます。この状態で python -V を実行すると、py -3.8 と指定しなくても、自動的にPython 3.8が動くようになります。

躓きポイント:PowerShellでエラーが出る場合 PowerShellで初めてアクティベートを試みる際、セキュリティポリシー(スクリプトの実行禁止)に引っかかりエラーになることがあります。その場合は、管理者権限のPowerShellで Set-ExecutionPolicy RemoteSigned を実行し、スクリプトの実行を許可してください。

まとめ:次回以降の使い回し

今後、新しいプロジェクトで別のバージョン(例: Python 3.10)の仮想環境が必要になった場合は、「1. 公式から3.10を落として入れる」→「4. py -3.10 -m venv .venv を実行する」 だけで、いつでも綺麗な独立環境を作ることができます。