pythonの複数バージョンをインストールしたり、切り替えたりするツールです。
何かをインストールするまでいろいろ大変ね!
Mac OS X
Mac OS X 10.15.4
brewでインストールできます。
$ brew install pyenv
Code language: Bash (bash)
git clone でもインストールできます。git cloneしたほうには、installリストが少し新しいようです。
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
Code language: Bash (bash)
環境変数を追加します。筆者は .bash_profile 、.bashrcのファイル構成なので、.bashrc に追加しました。
7行全てをコピペして、ターミナルで実行してください。
cat <<'EOT' >> ~/.bashrc
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
EOT
Code language: Bash (bash)
いったんターミナルを閉じて、もう一度ターミナルを開きます。
$ pyenv --version
pyenv 1.2.18
Code language: Bash (bash)
使い方へ
Ubuntu 18.04
git clone します。
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
Code language: Bash (bash)
環境変数を.bashrc に追加します。7行全てをコピペして、ターミナルで実行してください。
cat <<'EOT' >> ~/.bashrc
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
EOT
Code language: Bash (bash)
いったんターミナルを閉じて、もう一度ターミナルを開きます。
$ pyenv --version
pyenv 1.2.18-12-g098227f2
Code language: Bash (bash)
使い方へ
使い方
インストール可能なバージョン一覧を表示します。
$ pyenv install --list
Code language: Bash (bash)
特定のバージョンのpythonをインストールします。pipも同時にインストールされます。ここでは、3.8.2と2.7.18をインストールします。
$ pyenv install 3.8.2
$ pyenv install 2.7.18
Code language: Bash (bash)
インストール済みのバージョンを表示します。systemは、pyenvインストール前からインストールされていた /usr/bin/python です。Max OS Xでは 2.7.16、Ubuntu 18.04では2.7.17です。
$ pyenv versions
* system (set by /Users/aoki.makoto/.pyenv/version)
2.7.18
3.8.2
Code language: Bash (bash)
global設定を3.8.2に切り替えます。
$ pyenv global 3.8.2
$ python --version
Python 3.8.2
$ pip --version
pip 19.2.3 from /Users/aoki.makoto/.pyenv/versions/3.8.2/lib/python3.8/site-packages/pip (python 3.8)
$ pyenv version
3.8.2 (set by /Users/aoki.makoto/.pyenv/version)
$ cat /Users/aoki.makoto/.pyenv/version
3.8.2
Code language: Bash (bash)
別のディレクトリ、例えば ~/Documentsに移動して、local設定を2.7.18に切り替えます。
$ cd ~/Documents
$ pyenv local 2.7.18
$ python --version
Python 2.7.18
$ pip --version
pip 19.2.3 from /Users/aoki.makoto/.pyenv/versions/2.7.17/lib/python2.7/site-packages/pip (python 2.7)
$ pyenv version
2.7.18 (set by /Users/aoki.makoto/Documents/.python-version)
$ cat .python-version
2.7.18
Code language: Bash (bash)
シバンを記述するときは、/usr/bin/env python とします。pyenv local、pyenv globalの設定にしたがって、pythonが起動します。
#!/usr/bin/env python
import platform
print(platform.python_version())
Code language: Python (python)
$ ./version.py
3.8.2
シバンを/usr/bin/pythonとすると、pyenvインストール以前の/usr/bin/pythonが起動します。
#!/usr/bin/python
import platform
print(platform.python_version())
Code language: Python (python)
$ ./version.py
2.7.17
Code language: Bash (bash)