Help us understand the problem. What is going on with this article?

pyenv と pyenv-virtualenv の使い方

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

EasonYo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away