もうPythonの開発環境で悩むのは最後にしよう(Windows 10/11編)
Pythonの開発環境、非常につらいですよね。
もうこの記事で悩むのは終わりにしましょう。
インストールするもの
Microsoft StoreのPython
pyenv
pipenv
インストールしないもの
Anaconda
Anacondaはよく悩みの原因になるのでもう使うのはやめにしました。ただ、Anacondaは導入が非常に楽なので初心者はAnacondaでも良いかもしれません。が、後に苦しむことが多いと思いますのでご注意を
1. Microsoft StoreでPythonのインストール
こちらからインストールしてください。
なお、現最新版は3.10ですが、新しいバージョンがある場合はそちらを入れたほうが良いと思います。
2. コマンドプロンプトでpyenvのインストール
Powershellでは%USERPROFILE%
が名前解決されないので必ずコマンドプロンプトを使用してください。
> pip install pyenv-win --target %USERPROFILE%\.pyenv --no-user
このコマンドにより、%USERPROFILE%\.pyenv
、つまりユーザディレクトリの配下に.pyenv
ディレクトリが作成されます。
簡単なpyenvの説明
pyenv
は任意のpythonをインストールして使用できるようにするツールです。
Pythonはプロジェクトによって使用するバージョンが大体の場合異なっていますので、柔軟にバージョンを切り替えられるようにpyenv
を導入しています。
任意のPythonのバージョンをインストールするにはpyenv install 3.7.9
のようにterminalで実行してインストールが可能です。インストール後はpyenv local 3.7.9
とすれば今いるディレクトリにそのバージョンを適用、pyenv global 3.7.9
とすれば全体としてそのバージョンを使用するように設定が可能です。
pyenv local
でディレクトリごとに個別にバージョンを設定するのが面倒と思った方もいると思いますが、親切なプロジェクトだと.python-version
というファイルをプロジェクトのルートディレクトリに配置してバージョンを指定してくれています。pyenv
は自動でこのファイルを調べ適切なバージョンを検知して自動で使用してくれます。
3. pyenvのPATHを通す。
pyenvをインストールしただけでは、ターミナルから使うことはできません(フルパスで指定すれば使えますが)
ですので、Windowsの環境変数を設定してあげる必要があります。2つの方法で導入可能ですのでお好きな方をお選びください。
設定方法1 Powershellでサクッと追加
Powershellで以下のコマンドを打つだけでPATHを通す設定などがすべて終わります。
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
設定方法2 手動で環境変数に追加
(設定方法1で行えばいいと思うのですが、設定方法2を書いた後に設定方法1の方法を知りましたので、消すのがもったいなく載せたままにしておきます。)
Windowsボタンを右クリック→システム→デバイスの仕様覧のシステムの詳細設定
の環境変数を押下
ユーザ環境変数でPYENV
を新規追加する
PYENV
%USERPROFILE%\.pyenv\pyenv-win
ユーザ環境変数でPATHを編集
%PYENV%\bin
%PYENV%\shims
ここで注意ですが、PATHの%PYENV%\bin
%PYENV%\shims
の2つは必ずその下にあるWindowsApps
よりも上に持ってきてください。
WindowsAppsのPATHの中にはMicrosoft StoreでインストールしたPython 3.10が含まれていて、これを上に持ってきてしまうと、優先度の影響でpyenvのPythonではなくこちらのPythonが使われてしまいます。
設定完了後にpyenvが使えるかのチェック
これでPATHは通りましたのでコマンドプロンプトで確認してみましょう。
一回ターミナルを閉じて再起動してPATHを反映させてから実行してみてください。
以下のように表示されれば成功です
> pyenv --version
pyenv 2.64.11
せっかくですので現時点で最新のPythonをインストールしておきましょう。
> pyenv update
でまずはpyenvが持つPythonのバージョン一覧を更新します。その後pyenv install -l
で表示されたバージョン一覧の中で一番新しいバージョンを入れてみます。
> pyenv install 3.10.5
念のため今インストールしたバージョンを全体で使用するPythonとして登録しておきましょう
> pyenv rehash
> pyenv global 3.10.5
> python
Python 3.10.5 (tags/v3.10.5:f377153, Jun 6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
無事今インストールしたPython 3.10.5が使われていることが確認できました。
4. コマンドプロンプトでpipenvのインストール
次にpipenv
をインストールします。これは、最近のPythonプロジェクトのデファクトスタンダードになっているパッケージ管理ツールで、Pythonで使用するpipパッケージはもちろんですが、pyenv経由でPython自体のインストールまで行ってくれるツールです。
こちらも念のためコマンドプロンプトで実行します。
> pip install --user pipenv
これでインストールは完了です。
> pipenv --version
pipenv, version 2022.6.7
このように表示されていれば成功です。
pipenv自体はgitからcloneしてきたリポジトリがpipenvプロジェクトだった場合や、これから自分で新しいプロジェクトを作る際に使用するものですので、これ以降のpipenvの詳細は割愛します。
5. それ以外のパッケージのインストール
今後、pyenvでglobalになっているPythonのpipを用いて他のパッケージをインストールしていくことになると思います。その際はpip
コマンドで以下のようにインストールしていきましょう。
# 例 Jupyter Labをインストールしてみる
> pip install jupyterlab
# インストールしただけではPATHを通したshimsにjupyterが無く実行ができない状態のためrehashします。
> pyenv rehash
> jupyter-lab
これで無事JupyterLabが起動できました。
おわりに
WindowsのPython開発環境導入は非常に骨の折れる作業です。コーディングを始める前から苦しみたくないものですよね。これで悩むのは終わりにさせましょう!!
Discussion