269
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Pyenvの使い方

Pyenvとは?

  • 複数バージョンのPythonを簡単に切り替えられる。
  • 色々なバージョンのPythonを~/.pyenv以下に配置している。

Pyenvの場所

pyenv/pyenv

今回の作業環境

  • Ubuntu 16.04

インストール

pyenv-installerでインストールしてみる。

$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

.bashrcに設定を書き込む

$ 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のバージョンが一覧表示される。
  • pyenv install 3.6.1などとやると、3.6.1がインストールされる。
  • 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 --version
Python 2.7.12

globalコマンドを使ってバージョンを切り替える。

$ pyenv global 3.6.1
$ pyenv versions
  system
* 3.6.1 (set by /root/.pyenv/version)
  anaconda3-4.3.1
$ python --version
Python 3.6.1

localコマンドを使ってバージョンを切り替える。

  • 特定のディレクトリ内のみバージョンを切り替えたいときに使える。
  • pyenv localが実行されると、実行されたカレントディレクトリに.python-versionというファイルが作成される。これはglobal設定よりも優先される。
$ cd hoge
$ pyenv local anaconda3-4.3.1
$ python --version
Python 3.6.0 :: Anaconda 4.3.1 (64-bit)
$ cd ..
$ python --version
Python 3.6.1

ちなみに、.python-versionの中身を見てみたら、バージョン名のみ書いてあった。

$ cat .python-version
anaconda3-4.3.1

Pythonの場所(フルパス)の確認

$ pyenv which python3.6
/root/.pyenv/versions/3.6.1/bin/python3.6

ちなみに、普通のwhichも試してみる。

$ which python3.6
/root/.pyenv/shims/python3.6
$ which python
/root/.pyenv/shims/python

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
269
Help us understand the problem. What are the problem?