2022年01月27日

PythonインストールからPipenv + Pyenvを使えるようにするまでの備忘録

Pythonをインストールして、バージョン・環境管理ツールのPipenv + Pyenvを使えるようにする備忘録です。


久しぶりにPython使ったらなかなか戸惑ったので備忘録として書きます。
Mac、Linuxは割と簡単にできるんですが、なんかWindowsはめっちゃめんどくさそうでした。

2022年1月現在、たぶん一番早いと思います。

実現したいこと

  • 環境を他のプロジェクトとごっちゃにしたくない
  • プロジェクトごとにバージョンが違うので、切り替えできるようにしたい

環境

  • Windows11(Windows10でも変わらないと思います)
  • Python未インストール状態

Pythonのインストール

Pythonが入っていない場合、まずは普通にPythonをインストールします。

公式サイト版とMicrosoft Store版がありますが、今回はストアから落とします。
いろんなサイトを見る限り、ストアではなく公式サイトから落としたほうがよさそうです。

Pythonが入っていないなら、Windows Powershellを開いて python と実行するとストアのページが開きます。
あとでPyenvで任意のバージョンをインストールできるので、最新のものを入れておけば大丈夫です。

インストールが完了したら、Powershellで

python --version

を実行して、Pythonのバージョンが出てきたら成功です。

Pipenvのインストール

まずはpipを更新します。

python -m pip install --upgrade pip

次にPipenvをインストールします。

pip install --user pipenv

次に、パスを通すために現在のパスを調べます。
以下のコマンドを実行します。

python -m site --user-site
C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages

こんな感じのパスが出てくるので、これをコピーします。

スタートメニューで「path」と調べて、「システム環境変数の編集」を開きます。
次に、「環境変数」をクリックします。

「(ユーザー名)のユーザー環境変数」のPathに先程のパスの「site-packages」を「Scripts」に置き換えたものを追加します。
つまり先程の例だと、以下のようになります。

C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts

追加が終わったら、Powershellを再起動してから

pipenv --version

を実行し、実行できれば完了です。

Pyenvのインストール

Mac, Linuxだと簡単に導入できるのですが、Windowsでは少々手間がかかります。
Gitが導入されているのが前提条件なので、導入されていない場合は先にGitを導入してください。

本家PyenvはWindowsには対応してないので、pyenv-winを使用します。

Powershellで以下を実行します。

git clone https://github.com/pyenv-win/pyenv-win.git "$HOME/.pyenv"

実行が終わったら、以下を実行してパスを通します。

[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")

実行が終わったらPowershellを再起動して

pyenv --version

を実行し、正しくバージョンが表示されれば成功です。

注意

通常の場合、pipenv install を実行すると指定されたPythonバージョンが勝手にインストールされるのですが、pyenv-winの場合は勝手にやってくれないみたいで、先に自分で指定バージョンを入れておく必要があるっぽいです。

手順は代替ここを参照しておけばよさそう
https://qiita.com/akym03/items/3576842eed0e9d28cf82

参考サイト

© 巳波みなと