🐣

【私的】Python環境構築(pyenv-win+venv)

2024/01/24に公開

はじめに

新しいPCを購入した際に真っ先に行う、pythonの環境構築をまとめました。

  1. python本体のインストール
  2. pyenv-winで複数のバージョンを使用可能に
  3. venvで仮想環境作成

想定する読者

以下のような、主にプログラミング入門者くらいを想定しております。

  • pythonの環境構築(2024/1月時点で動作するもの)を知りたい!
  • windowsを使用していて、pyenvでの環境構築をしたい!
  • venvとpyenvで任意のバージョンの仮想環境を作る方法を知りたい!

動作確認環境

PC情報

OS:Windows 10 Home | CPU:Inter(R) Core(TM) i5-3230M | メモリ:4.00GB

pythonバージョン

  • python:3.12.1
    • pyenv-win:3.1.1

1. python本体のインストール

1.1 インストーラーのダウンロード

pythonの公式サイト(https://www.python.org/)からインストーラーをダウンロードします。

1.2 インストーラーを実行する

1.1でダウンロードしたexeファイルを実行(ダブルクリック)

下の「Add python.exe to PATH」にチェックを入れてから、【Install Now】をクリック

プログレスバー(緑色のやつ)が一番右に行くまで待ちます

「Setup was successfully」が表示されたら、【close】ボタンをクリックして閉じます

これでpython本体のインストールは完了です。

1.3 pythonを実行してみよう!

実際にpythonが実行できるか確認してみましょう。

「コマンドプロンプト」を使用するために、下の検索バーに「cmd」と入力し、検索結果に出てきた「コマンドプロンプトを開きます

黒い画面がでてきますが、大丈夫です!
よっぽど変な文字列を入力しない限り安全なので、落ち着きましょう。

>マークが表示されたら、「python」と入力し、Enterキーを押す

画像の例のように、「Python 3.12.1 ...」みたいなのが表示されて、>>>(入力待ち状態)になったらOKです

適当にプログラムに計算させてみましょう!

18782(いやなやつ)+18782=37564(皆殺し)になりました。 あってますね!

コマンドプロンプトは、右上の×マークで消してOKです

余談

コマンドプロンプトはよく使うので、下メニューに登録しておくと便利です!
コマンドプロンプトを起動 → アイコン上で右クリック → ピン止め でできます。

2. pyenv-winのインストール

pyenv-winは、いろんなバージョンのpythonを1つのPCで使い分けることができるものです。
pythonのライブラリの中には、最新バージョンだと動かないものなどもあります。
そういったものを使用するために、また別のバージョンのpythonを入れなおすのは結構大変なのです(PATHとかファイルの残骸とかで不具合の原因にもなりやすい)
そこで、pyenvの出番というわけです!
pyenvを使えば、複数のバージョン(例えば3.12.1と3.9.3など)をコマンドで切り替えて使い分けることができます。

2.1 pyenv-winの導入(pip)

pywnv-winはpythonライブラリなので、pipコマンドで導入可能です。
...とその前にpip, wheel, setuptoolsをupdateしておきます。

python -m pip install --upgrade pip wheel setuptools

では、本命のpyenv-winをpipでインストールします
今回は、targetコマンドを引数に追加して、関連ファイルの保存場所をユーザー直下に指定します。

python -m pip install pyenv-win --target %USERPROFILE%\.pyenv

正常にコマンドが動作すれば、ユーザー直下に「.pyenv」というフォルダが現れます
(エクスプローラーの設定によっては隠しファイルとして見えないかもですが...)

さて、これでpyenvコマンドを使用してみると、「コマンドが見つかりません」と怒られます...

コマンドプロンプトからpywnvコマンドを実行できるようにするため、システム環境変数を設定します

2.2 システム環境変数へ追加(power shell)

システム環境変数を手作業でいじるのは怖いため、power shell君に設定してもらいましょう。

下の検索メニューで「power shell」で検索、開く

以下のコマンドを実行します(コピペ推奨)

[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")


実行しても何も変化はありませんが、エラーなければ大丈夫のはず...

2.3 コマンドプロンプトで実行

コマンドプロンプトを起動して、pyenvを実行してみます。

pyenv


実行すると、一度消えて、以下のような文字が表示されればOKです

これで、pyenv-winの導入完了です。

2.4 初期設定

左記に、初期設定だけ済ませちゃいます! 以下のコマンドを実行!(コピペ推奨)

pyenv update
pyenv install 3.12.1
pyenv global 3.12.1
pyenv versions

各コマンドの解説

↓↓↓ pyenvで使用できるpythonのバージョンリストを更新する

pyenv update

↓↓↓ (pyenv用の)「python 3.12.1」を導入する

pyenv install 3.12.1

↓↓↓ pyenvでデフォルトで呼ぶpythonバージョンを、3.12.1に指定する

pyenv global 3.12.1

↓↓↓ ダウンロード済み(使用可能な)pythonバージョンの一覧を表示

pyenv versions

3. venvの導入(?)

最後にvenvの導入...と行きたいのですが、実はvenvはpython標準搭載のためすでに入ってます。
説明は公式ドキュメント参照(https://docs.python.org/ja/3.12/library/venv.html)
...というのも味気ないので、実際に仮想環境を作ってみましょう!

3.1 venvでの仮想環境作成

とりあえず、下記にある仮想環境作成までのコマンドを実行してください。

cd %USERPROFILE%
mkdir .venv
python -m venv test_venv

各コマンドの解説

↓↓↓ ユーザー直下のフォルダへ移動

cd %USERPROFILE%

↓↓↓ 「.venv」という名称のフォルダを新規作成

mkdir .venv

↓↓↓ 「.venv」へ移動

cd .venv

↓↓↓ 「test_venv」という名称で仮想環境を作成

python -m venv test_venv

以上、仮想環境作成までのコマンドでした

3.2 仮想環境の有効化

仮想環境を有効化(activate)してみましょう!

call %USERPROFILE%\.venv\test_venv\Scripts\activate

以下の画像のように左側に(test_env)と表示された状態になればOKです

4. 実践:任意のバージョンの仮想環境を作成する

実際に任意のpythonバージョンで仮想環境を作成する時には、以下の手順で行います。

  1. pyenvで作成したいバージョンに切り替える
  2. venvで仮想環境の作成
  3. 仮想環境に入った後、各種ライブラリを導入する

では、実際にやっていきましょう。
(以下、導入するバージョンは、3.9.3とします)

4.1 作成したいバージョンに切り替える

まず、pyenvで3.9.3に切り替えましょう

pyenv shell 3.9.3
3.9.3が入っていない場合

pyenvを使ってinstallします

pyenv update
pyenv install 3.9.3

念のため、PATHが切り替わっているか確認します

python -V

4.2 venvで仮想環境を作成する

.venvフォルダへ移動します

cd %USERPROFILE%\.venv

仮想環境を作成

python -m venv py393

仮想環境を有効化

%USERPROFILE%\.venv\py393\Scripts\activate

バージョンを確認する

python -V

キチンとpython3.9.3の環境が作成できてますね!

4.3 各種ライブラリの導入

仮想環境にライブラリを導入するのは簡単で、
仮想環境に入った状態でpip installすればOKです。

python -m pip install numpy

ちなみに、仮想環境にいれたライブラリは、pyenvで入れた方のバージョンには入りません

pyenvで切り替える方のpythonには何もライブラリを入れずに
各仮想環境内に入れることをお勧めします。

以上。

Discussion