【Linux】pyenvのインストール
必ずしも必要なわけではないが、GoogleKeepにメモってたので書き起こしとく。
pyenvとは
Pythonのバージョンを簡単に切り替えられるようになるツールです。また、複数のバージョンのPythonを共存(インストール)させることができるようになります。
インストール
'pyenv'のインストール手順です。
pyenvをダウンロード
GitHubからホームディレクトリ(~/.pyenv)にダウンロードします。
gitコマンドを使用してダウンロードする場合は次のコマンド。
~$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
サブモジュールはないので、GitHub - pyenv/pyenv: Simple Python version managementに飛んで「'clone or download'→'Download ZIP'→保存→解凍→'~/.pyenv'に配置」でも可能。
'~/.pyenv'ディレクトリの中は次のようになる。
~$ ls -A ~/.pyenv/
.agignore .vimrc LICENSE completions shims version
.github CHANGELOG.md Makefile libexec src versions
.gitignore COMMANDS.md README.md plugins terminal_output.png
.travis.yml CONDUCT.md bin pyenv.d test
pyenvのパス(PATH)を通す
シェルが'pyenv'を見つけられるようにパスを通します。私は'bash'を使用しているので、bash以外わかりません。ごめんなさい。
bashに'pyenv'のパスを通すには次のコマンド(~/.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
'~/.bash_profile'の編集が終わったら、次のコマンドで適用します。
~$ source ~/.bash_profile
'pyenv'のパスが通ったか確認します。次のコマンド。
~$ pyenv --version
'pyenv'のバージョンが表示されれば、パスは通っています。
'pyenv'自体のインストールはこれで完了です。
pyenv環境にPythonをインストール
'pyenv'をインストールしただけではあまり意味がないので、'pyenv'で複数のバージョンのPythonをインストールしていきます。
依存パッケージのインストール
'pyenv'は指定したPythonをダウンロードしてきてコンパイルをするため、その際に必要になるパッケージをインストールしておきます。
Home · pyenv/pyenv Wiki · GitHubに必要なパッケージが書かれています。まとめてインストールしてしまえば問題ないでしょう。
Debian系の場合
Debian系のディストリビューションの場合は次のコマンド。
~$ sudo apt-get -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
すでにインストールされているパッケージも含まれているが、気にしない。
RedHat系の場合
RedHat系のディストリビューションの場合は次のコマンド。
~$ sudo yum -y install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel
すでにインストールされているパッケージも含まれているが、気にしない。
Pythonをインストール
次のコマンドでインストールできるPythonのバージョンが表示されます。
~$ pyenv install -l
Pythonをインストールするには次のコマンド(python 2.7.16の場合)。
~$ pyenv install 2.7.16
Pythonをインストールするには次のコマンド(python 3.6.8の場合)。
~$ pyenv install 3.6.8
Vimのビルドのことを考え、共有ライブラリを作る場合は次のコマンド。
~$ CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.16
~$ CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.8
pyenvでPythonのバージョン切り替え
Pythonのインストールが終わったら、バージョンを切り替えます。
pyenv環境下にインストールされているPythonの確認
次のコマンドでインストールされているPythonのバージョンを確認できます。
~$ pyenv version
ここに表示されているものから、切り替えのバージョンを指定することになります。
また、現在選択されているPythonのバージョンを確認したい場合は、次のコマンド。
~$ pyenv versions
バージョンを切り替える
切り替えるには次のコマンド。
~$ pyenv local 2.7.16
~$ pyenv global 2.7.16
'local'は現在いるディレクトリに反映、'global'は全体に反映されます。
システムのPythonに戻す場合は'system'を指定します。
~$ pyenv local system
~$ pyenv global system
Python2とPython3の両バージョンを指定する場合
'python'コマンドでPython2系、'python3'コマンドでPython3系が起動の方が、私はしっくりきます。
'python'コマンドでPython 2.7.16、'python3'コマンドでPython 3.6.8にしたい場合は、次のコマンド。
~$ pyenv global 2.7.16 3.6.8
前者が'python'コマンドに適用され、後者が'python3'コマンドに当たる訳ですね。
おわりに
私はバージョンをちょくちょく切り替えて使用するようなハッカー的な技術は持っていないので、いつもバージョンは固定したままです。pyenv入れてる意味が。。。
それはさておき、Python2系のサポートが2020年で終了するらしいですね。皆さんはすでにPython3に移行しているでしょう。私がなんとか書けるのは未だにPython2系なんですよね。どうも私は新しい物は好きだけど、その中で古い方を好むようです。