プログラミング初心者がアーキテクトっぽく語る

見苦しい記事も多数あるとは思いますが訂正しつつブログと共に成長していければと思います

pyenvによるPythonバージョン管理

Pythonは人気が上昇している言語だ。Python製のツールを実行したい、Pythonでなにかを書きたい、ということは珍しくないだろう。このときPythonのバージョンが大事になる。

Pythonに限らずどんな言語で開発されたソフトウェアでも特定のバージョンのインタプリタ仮想マシンに依存している。特にPythonは活発にアップデートされている言語なので後方互換性がない機能もある。あなたが必要としている機能を具備したPythonバージョンをインストールして利用する必要があるのだ。

ここで問題が発生する。Pythonの人気がありすぎてOSがシステム管理のためにPythonを使っていたりする。しかもちょっと古いバージョンに依存していたりする。もしあなたが最新バージョンのPythonをインストールするとOSのシステム管理機能が動かなくなってしまうかもしれなのだ。

異なるPythonバージョンを必要に応じて切り分けられないだろうか?それを実現するのが今回紹介するPythonバージョン管理ツール pyenvだ。

pyenvはPythonを利用する上で必須ツールだ。覚えておいて欲しい。


基本情報

  • Simple Python version management
  • Pythonのバージョンを切り替えることができる
  • OS全体で切り替えることも、特定のディレクトリのみ切り替えることもできる
  • ライブラリ環境の切り替えはできない
    • virtualenvやpipenvを利用する
  • virtualenvやpipenvのバックエンドでも利用されている様子

インストール

  • homebrewでインストール
$ brew install pyenv
$ vim ~/.bash_profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

使い方

$ pyenv install 3.8.0
  • Pythonのアンインストール
$ pyenv uninstall 3.8.0
  • Pythonのバージョンを切り替える - OS全体
$ pyenv global 3.5.0
$ cd <directory>
$ pyenv local 3.8.0
  • 現在のPythonのバージョンを確認 - pyenv設定
$ pyenv versions
  • OSの認識
$ python --version 

トラブルシュート

  • pyenv設定とOS認識が一致しない場合はPATHの順序性をチェック