14
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows10にpyenvを入れてバージョン切り替え可能なpython環境をつくってみる

Last updated at Posted at 2021-08-12

#やりたいこと

  • Windows10環境に好きなバージョンのPythonを入れる
  • Pythonのバージョンを切り替えられる様にする

#結果

  • pyenvを使える様にすることでバージョンを切り替え可能
  • Micorsoft Storeのpythonは切り替えなどに向いてなさそう
  • mac+brewに比べると手間がかかった(mac+brewのすばらしさを再認識)

#以下、やったこと

##Micorsoft StoreのPython(今回はパス)

便利になった。
Windows10の最近のUpdateにおいて、Pythonがインストールされてない状態で、
cmdより、

cmd
C:\Users\username>python

と入力すると、Micorsoft Storeから最新版のPythonをインストールできる!?

python_win10_default.png

とりあえず入ってればOKであればこれで良いと思います。
今回は**「バージョンを切り替えたりすることを想定したいのでパス**」します。

追記:
どうやらpathの通ってるところにMicrosoft Storeに接続するpython.exeがいるらしい1

##Pythonの切り替え管理はできる?
最近の言語はなんだかんだ、なんとかenv(nodejs→nodenv)みたいので、バージョン切り替えするものがあったりします。
pythonもあると思うので、公式サイトやぐぐったりしてみると、pyenvはちゃんとありそうです。
そしてwindowsの場合だと、pyenv-winというのが、公式的にも良いらしい。

##pyenv-winの導入
今回はこれを入れることにする。

大まかな手順は以下。

  • pyenv-winのファイル一式を取得
  • ローカルフォルダに格納する
  • pathを通す

###pyenv-winのファイル一式を取得
pyenv-winのgitからファイル一式を取得します(ブランチはmasterです)。

https://github.com/pyenv-win/pyenv-win

git cloneでもよいですし、zipダウンロードでもよいです。
自分は楽したいので、URLでダウンロードしちゃいました(コマンドラインだけ派のみなさまごめんなさい)

https://github.com/pyenv-win/pyenv-win/archive/master.zip

###ローカルフォルダに格納する

インストール先の準備します。

%userprofile%\.pyenv

にします。
(どのサイトみても、ここにしてるからです☆)

zipを解凍すると中身は

  • .github
  • pyenv-win
  • tests
    などですが、これら全部(ファイルもフォルダも)→ %userprofile%\.pyenv の中に入れます。

C:\Users\username\.pyenv\pyenv-win

みたいな感じになるはずです。

###pathを通す
pathを通します。

%USERPROFILE%\.pyenv\pyenv-win\bin\pyenv

をpyenvと入力して動く様にしたいのと、

%USERPROFILE%\.pyenv\pyenv-win\shims\python
%USERPROFILE%\.pyenv\pyenv-win\shims\pip

pyenvによって有効になっているpythonやpipが格納される予定のところを動く様にしたいので、
環境変数としてpathに

%USERPROFILE%\.pyenv\pyenv-win\bin
%USERPROFILE%\.pyenv\pyenv-win\shims

を登録します。
(ほかを優先する必要がないと思ったので優先度を一番上にしました。Windows10は順番を入れ替えできるのですごく楽ですね)

windows10_path_set.png

登録後にcmd開いて、

cmd
> where pyenv
C:\Users\username\.pyenv\pyenv-win\bin\pyenv
C:\Users\username\.pyenv\pyenv-win\bin\pyenv.bat

の結果が帰ってくれば大丈夫です。
"C:\Users\username"の部分はその時のユーザホームディレクトリに変換されてると思います。

cmd
INFO: Could not find files for the given pattern(s).

の場合はpathが通ってませんので、pathとpyenv-winの場所が正しいか確認する必要があります。
それ以外のpathを示した場合はpathの順位がおかしいと思うので順位確認ですね。

コマンドを認識していれば、以下の様に動きます。

cmd
> pyenv
pyenv 2.64.9
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands     List all available pyenv commands
   duplicate    Creates a duplicate python environment
   local        Set or show the local application-specific Python version
   global       Set or show the global Python version
   shell        Set or show the shell-specific Python version
   install      Install a Python version using python-build
   uninstall    Uninstall a specific Python version
   update       Update the cached version DB
   rehash       Rehash pyenv shims (run this after installing executables)
   vname        Show the current Python version
   version      Show the current Python version and its origin
   version-name Show the current Python version
   versions     List all Python versions available to pyenv
   exec         Runs an executable by first preparing PATH so that the selected Python
   which        Display the full path to an executable
   whence       List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv-win/pyenv-win#readme

###pythonをバージョン指定でインストールしてみる

インストールできるバージョン一覧をみる。

cmd
> pyenv install --list

でインストールできるバージョン一覧がでます。
今回は試しに 3.9.6 でいくでござる。
(これを書いているタイミングで3.10.xはまだ安定版ではないゆえ)

cmd
> pyenv install 3.9.6

これでインストール完了すると思います。

cmd
> where python
C:\Users\username\.pyenv\pyenv-win\shims\python
C:\Users\username\.pyenv\pyenv-win\shims\python.bat
C:\Users\username\AppData\Local\Microsoft\WindowsApps\python.exe

みたいになると思います。
(最後のやつはMicrosoft Storeに飛ばしてくれるやつだと思います。たぶん)

cmd
> where pip
C:\Users\username\.pyenv\pyenv-win\shims\pip
C:\Users\username\.pyenv\pyenv-win\shims\pip.bat

こちらも、大丈夫そうです。

###2x系を追加インストール

切り替えの試しに2.x系を入れてみます

cmd
> pyenv install 2.7.18

これで入ります。

cmd
> pyenv versions
  2.7.18
  3.9.6

2系と3系が入りました。

###2.7.18へ切り替え
切り替え実施

cmd
> pyenv global 2.7.18

バージョンを確認してみる

cmd
> python --version
Python 2.7.18

###3.9.6へ切り替え
切り替え実施

cmd
> pyenv global 3.9.6

バージョンを確認してみる

cmd
> python --version
Python 3.9.6

いい感じで出来ました。

  1. %USERPROFILE%\AppData\Local\Microsoft\WindowsApps\python.exe というのが呼ばれてるらしい。python入れたら、これよりも上位にpathを切る必要があります。

14
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?