pyenv
pyenvとはPythonの複数のバージョンを使い分けるコマンドラインツールです。これを使えば同じ端末にPythonのバージョン毎に環境を作成することが出来ます。
- Githubのリンク:https://github.com/pyenv
- できること:同じ端末に複数バージョンのPython環境を簡単に管理する
- 出来ないこと:同じバージョンで複数の環境を作成や管理する
pyenvのインストール
pyenv-installerでのインストール
Githubにインストール手順を記載しています。
$ curl https://pyenv.run | bash
.bashrcに設定を書き込む
pyenvのみを利用する場合に不要と思いますが、後記のpyenv-virtualenvを使いたいので、初期化処理の関連コマンドを追記します。
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ pyenv -v
pyenv 1.0.10-2-geef042a
失敗の場合
インストールに失敗する場合は、ここに色々注意点が書いてある。
pyenvのコマンド
よく使うコマンドを下記に記載します。その他はドキュメントを参照してください。
インストール可能なコマンド
pyenv install --list
でインストールできるpythonのバージョンを一覧表示する。
pythonバージョンのインストール
pyenv install 3.6.1
で指定バージョンのPythonをインストールする。
バージョンの確認
pyenv version
で現在アクティブなバージョンがどれか教えてくれる。
pyenv versions
で、インストール済み一覧が表示され、現在アクティブなバージョンがどれか教えてくれる。
$ pyenv install --list
$ apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils
$ pyenv install 3.6.1
$ pyenv install anaconda3-4.3.1
$ pyenv versions
* system (set by /root/.pyenv/version)
3.6.1
anaconda3-4.3.1
pythonバージョンの切り替え
-
pyenv shell 3.6.1
で現在のShellのみ有効なバージョンを指定する -
pyenv global 3.6.1
で全局有効なバージョンを指定する
$ mkdir python_3.6.1
$ cd python_3.6.1
$ pyenv global 3.6.1
$ pyenv version
3.6.1 (set by /root/.pyenv/version)
$ cd ..
$ pyenv version
3.6.1 (set by /root/.pyenv/version)
-
pyenv local 3.6.1
でフォルダ範囲有効なバージョンを指定する(globalの設定より優先)
$ mkdir python_anaconda3-4.3.1
$ cd python_anaconda3-4.3.1
$ pyenv local python_anaconda3-4.3.1
$ pyenv version
python_anaconda3-4.3.1 (set by /root/python_anaconda3-4.3.1/.python-version)
$ cd ..
$ pyenv version
3.6.1 (set by /root/.pyenv/version)
pyenv-virtualenv
pyenvの出来ない同じバージョンで複数の環境作成や管理するコマンドラインツールです。
pyenv-virtualenvのインストール
pyenvのインストール時に一緒に設定することが出来ます。
個別インストールの場合に以下のコマンドを参考してください。
brew update
brew install pyenv-virtualenv
.bash_profileや.zshrcに以下を追加する
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv-virtualenvを使う
利用方法はpyenv-virtualenvのコマンドで環境を作成する。
その後、Pyenvで作った環境を指定して、環境の指定や、管理などの操作をする。
$ pyenv virtualenv 3.6.4 mypyenv
$ mkdir mypyenv
$ cd mypyenv
$ pyenv local mypyenv
上記のコマンドは、python3.6.4を指定して、「mypyenv」という名前の仮想環境を作成しました。
その後、pyenv local
でフォルダ「mypyenv」に仮想環境「mypyenv」を設定しました。
この状態でパケージをインストールする場合、仮想環境「mypyenv」にしかインストールしていません。
その他
Visual Studio Codeで開発する場合に環境を簡単に切り替えれます。
しかし、pyenv local
で指定したバージョンとVisual Studio Codeで指定したバージョンの有効範囲は異なりますので、開発時に気を付けてください。
参考リンク
https://qiita.com/mogom625/items/b1b673f530a05ec6b423#pyenv%E3%81%A8%E3%81%AF
https://ensekitt.hatenablog.com/entry/2018/03/13/200000