Pythonのバージョン管理ツール, pyenvの説明.
公式Github: pyenv/pyenv
目次
1台のPCの中で, 異なるバージョンのPythonを使い分けるためのツールです.
一口にPythonと言っても様々なディストリビューションがあり, 科学計算用の様々なモジュールが最初から揃っているAnacondaといったものがあります. またそれぞれに
3.10.13/3.11.8/3.12.2/3.13.0/anaconda3-2024.02-1
というような複数のマイナーバージョンが存在し, 異なるPythonを使い分けたくなることがしばしばあります. そのような場面で複数のPythonを簡単に切り替えられるようにするツールがpyenvです.
Macには最初からPythonがインストールされており(system python), 実行ファイルは /usr/bin/ にあります. 他にもhomebrewでPythonをインストールしたことがあれば /usr/local/bin/などにも入っているはずです.
1台のPCに複数のPythonがインストールされている場合, どれが使われるかはコマンドサーチパス(以下パス, PATHと書く)の記述順序によります -> PATHとは
現在使われているPythonの実行ファイルがどこにあるかを確認するには, ターミナルを開き
which python
というコマンドを実行します. すると
/usr/bin/python
というように, 実行ファイルの場所を返してくれます(PATHに追加されているディレクトリの中に実行可能なpythonが存在しない場合は, 何も返ってきません)
結局, どのPythonが実行されるかを制御するためにはパスを書き換えることが必要になります. しかしそれを毎度毎度やるのはめんどうくさい. そこでパスの書き換えをコマンド一つで実行してくれるのがpyenvです.
経済学部のPCには, 既にインストールされています.
他のPCにインストールしたい場合は
- Github: pyenv/pyenv
に全てが書いてあります. なおMacでHomebrewがインストールされていれば
brew update
brew install pyenv
で直ちにインストールできます(参考: MacにHomebrewをインストールする).
pyenv
というコマンドを実行し,
pyenv 2.3.36
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
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
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
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/pyenv#readme
というようなヘルプが表示されれば, インストール成功です. もし
pyenv: command not found
と表示された場合は, パスの設定が上手く出来ていません. シェルにbashを使っている場合(特に設定を変えていなければこれです), ターミナルで
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
exec $SHELL
を順に実行してください. pyenvを実行し, 先ほどのようなヘルプが表示されればインストール成功です. これでも失敗した場合は, 直接~/.bash_profile(通常隠しファイルになっている)を編集してみてください.
代表的なコマンド
- ヘルプ
pyenv #ヘルプを表示
- バージョンをインストール
pyenv install --list #現在pyenvでインストール可能な全てのバージョンを表示
pyenv install [バージョン名] #該当のバージョンをインストール
pyenv uninstall [バージョン名] #該当のバージョンをアンインストール
- バージョンを確認
pyenv versions #現在pyenv環境にインストールされている全てのバージョンを表示
pyenv version #現在シェルで実行されているpythonのバージョンを表示
pyenv local #現在のディレクトリに設定されているpythonのバージョンを表示
pyenv global #PC全体で標準に設定されているpythonのバージョンを表示
- バージョンを設定
pyenv shell [バージョン名] #現在シェルで実行されているpythonのバージョンを設定
pyenv local [バージョン名] #現在のディレクトリに設定されているpythonのバージョンを設定
pyenv global [バージョン名] #PC全体で標準のpythonのバージョンを設定
とりあえずanaconda3の最新バージョン(2025年現在の最新版を確認してください)をインストールするのが良いと思います. そのためには,
pyenv install --list #インストール可能なバージョンを確認
pyenv install anaconda3-2024.02-1 #最新バージョンのanacondaをインストール(最新版を確認)
pyenv global anaconda3-2024.02-1 #anacondaを標準のpythonに設定
とすればよいです. なお, 大学のPCには既にanaconda3がインストールされています.
which python
というコマンドを実行し,
/Users/[username]/.pyenv/shims/python
などと表示されれば, 正常にpyenvのpythonが優先して使用できるようになっています.
pipが既にインストールされているので, 通常通り
pip install quantecon
などと実行すれば, それぞれのディストリビューション毎にライブラリがインストールされます.
pipについての詳細は: ライブラリのインストール
経済学部のPCに最初から入っているsystem pythonやanacondaでは, パーミッションの都合で新しいライブラリがインストール出来ない可能性があります. そのようなエラーが出た場合は, 別にディストリビューションをインストールし, その環境で再度インストールしてみてください.
パスとは, 一般には
/Users/myuuuuun/Documents/hoge.txt
のような, フォルダやファイルの場所を示すための表記です.
しかし「パスを通す」といった時のパスは, 正確にはコマンドサーチパスのことで, 「シェルがコマンド実行ファイルを探しに行くディレクトリ」のことです. ターミナルを開き
echo $PATH
とすると,
/usr/local/bin:/usr/bin:/bin:/usr/sbin
などと表示され, これがコマンドサーチパスになります. パスの細かい話は, 下のリンクを参照してください.
PATHの詳細:
使用しているシェルがbashの場合(何も設定を変えていなければこれです. 使用中のシェルはecho $SHELLで確認できます), ユーザー用のPATHは
.bash_profile
に記述します. 通常隠しファイルになっているので, ターミナル上で編集するか,
を参考に, 隠しファイルを表示してエディタなどで編集してください.