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

Pyenvの使い方

More than 3 years have passed since last update.

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
mogom625
PHP JS, Mysql, Apache, Nginx, Python, AWS, GCP, Vagrant, Docker, TensorFlow, Django, React, Android, Swiftとかやってます。Django, Docker, React, NoSQL, OpenIDとか勉強中です。
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした