「pyenv」とは
「pyenv」は、
「Python」の標準の言語処理系が持つ機能の一つで、
システム上に複数バージョンの「Python」をインストールし、
使いわけをできるようにする機能。
「pyenv」をインストールする
「pyenv」をインストールするには、
「git」から持ってくる方法と、
「brew」を使用する方法があります。
「pyenv」をインストールするコマンド
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
「brew」で「pyenv」をインストールするコマンド
$ brew install pyenv
「pyenv」の設定ファイルを編集する
インストールが完了したら、
「pyenv」のパスを通すために、
設定ファイルを編集する。
「Bash」の設定ファイル「.bash_profile」
「zsh」の設定ファイル「.zshrc」
といった利用している設定ファイルを編集する。
コマンドで「.bash_profile」を編集する方法
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
コマンドで「.zshrc」を編集する方法
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
「vi」コマンドを使用して設定ファイルを編集する方法
$ sudo vi ~/.bash_profile
$ sudo vi ~/.zshrc
記述する内容
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
「vi」コマンドを使用して設定ファイルにに直書きしてもOK。
設定内容は、「Bash」「zsh」のどちらも同じ。
変更内容を保存する方法
$ source ~/.bash_profile
$ source ~/.zshrc
編集したシェルの設定ファイルを保存するには、
下記のいずれかを実行する。
「source」コマンドを使用して、
シェルの設定ファイルを保存する。
「pyenv」のバージョンを確認する
ターミナルを再起動し、
「pyenv」コマンドで、バージョンを確認する。
% pyenv -v
pyenv 1.2.21
「pyenv」でインストール可能な「python」を確認する
「pyenv install --list」と入力すると、
インストール可能な「python」などの一覧が表示されます。
「python」は、数字のみの「3.9.0」などのエリアです。
$ pyenv install --list
出力結果:↓
Available versions:
2.2.3
2.3.7
.
.
3.9.0
3.9.1
3.9.2
3.9.3
3.9-dev
3.10-dev
activepython-2.7.14
activepython-3.5.4
activepython-3.6.0
anaconda-1.4.0
anaconda-1.5.0
anaconda-1.5.1
.
.
stackless-3.4.7
stackless-3.5.4
stackless-3.7.5
「pyenv」で「python」をインストールする
「pyenv」で「python」をインストールコマンド
pyenv install pythonのバージョン
pyenv install 2.7.18
pyenv install 3.10.3
「python」のバージョンをシステムデフォルトに戻す方法
pyenv global system
不要な「Python」をアンインストールする方法
pyenv uninstall 3.10.1
「pyenv」でバージョンを切り替える方法
「pyenv」でバージョンを切り替えるには、
「local」を指定すると、現在のディレクトリに、
「global」を指定すると、全体に、
設定したバージョンが適用されます。
$ pyenv local 2.7.10
$ pyenv global 3.6.0
「python」のバージョンを確認する方法
$ python --version
Python 2.7.10
「pyenv」と「python -v」の「Python】バージョンが異なる時の対処方法
まず、
「Python」バージョンをそれぞれ確認する。
$ pyenv versions
system
* 2.7.10
3.6.0
$ python --version
Python 3.6.0
次に、「which」コマンドで、パスを表示する
$ which python
/usr/bin
「/usr/bin」の場合、
デフォルトでPC内にある「python」を参照している。
「pyenv」の「Python」に、パスを変更したければ、
「/etc/paths」設定ファイルを編集する。
「/etc/paths」設定ファイルを編集する内容は、
$ sudo vi /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
/sbin
というように記述を変更する。
「usr/bin」よりも、「/usr/local/bin」を優先させるようにすることで、
「pyenv」の「Python」を先に読み込ませる方法らしい。
設定変更後に再度確認してみる。
$ which python
/usr/local/bin/pyenv
「pyenv」の「Python」のパスが表示されれば解決。
「pyenv-virtualenv」のインストール
pyenvは、
一つのマシンに複数のバージョンの「python」をインストールしてそれを切り替えて使える仕組み。
「pyenv-virtualenv」は、
一つのバージョンの「python」環境の中で、複数の環境を構成する仕組み。
「python」は、システム全体で依存ライブラリを「1セット」しか登録できない
という特徴があるので、
その解決策として作られて仕組み。
複数プロジェクトで、依存しているライブラリが衝突してしまうことを防ぐことができるらしいですが、
はじめは、特に必要ないので、
必要に応じて、「pyenv-virtualenv」をインストールしても良い。
「Bash」の場合
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
「zsh」の場合
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
$ source ~/.zshrc
Back