St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

pyenvメモ(Anaconda/virtualenvとの違いについても比較してみた)

こんにちは。

私は圧倒的Anaconda派閥なのですが、ドキュメントにpyenvを使えというお達しがあったので、「郷に入っては郷に従え」の名のもとに、使います笑。

存在や機能は知っていたのですが、正直真面目につかったことがなかったので、入門します。

◯そもそもpyenvってなんやねん。ってかanacondaとかvirtualenvとの違いは?

とりあえず、公式のpyenvのGithubページがこちら。

公式のpythonを入れてそこからやっている方はあんまり多くはないんじゃないかなと思うんですが、だいたいpythonで環境構築というと、思いつくのはAnaconda(miniconda)かpyenvかvirtualenvかなと思います。

■Anaconda
  • windows/linux/macの全部で使える
  • データサイエンスやるやらないにかかわらずもうこれでいいと思う
  • pythonのバージョンも変えれる(GlobalとLocalの両方で)
  • packageのバージョンの依存関係とかも考慮して管理してくれる
■pyenv
  • windowsでは使えない(死)
  • pythonのバージョンを変えれる
  • 3.3系以降を使っている人は最初から入っているため使いやすい(らしい。この記事参照しました)
■virtualenv(venv)
  • virtualenvちvenvは基本名前が変わっただけで同じ
  • 2系・3.2系以前を使っている人はvirtualenvを使っている(らしい。この記事参照しました)
  • pythonのパッケージ管理Tool

改めて比較してみるとわかりますが、そうなんです!私Anacondaしかほぼしらないというか、これでだいたいのサイトに書いてあることは、ほぼ全部の事できちゃうんですよね…。

でも、pyenvを使います。参考にあげているサイトは勉強になりました(誰かこのあたり詳しい人教えてください。これ以外にも沢山あるのは知ってますが、忘れましたので、それも誰か教えてください。他力本願(汗))。

◯pyenvをインストール

■環境
$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial
■Install

インストールの方法は公式のサイトにある方法でやればいいと思います。一番ラクなのはこちらのサイトにある方法かなと思うので、これでやればいいと思います。

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

放っておけばおわります。

■.bashrcに書き込み

以下の三行を.bashrcに書き込みます。

export PATH="/home/st_hakky/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

これでおしまいです。

◯Update / Uninstall

■Update
pyenv update
■Uninstall

pyenvのルートごと消せばいいので簡単です。

rm -fr ~/.pyenv

インストール時に.bashrcに追加した3行も消します。

export PATH="/home/st_hakky/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

◯コマンド

■インストール可能なバージョンの取得
pyenv install --list
■pythonの特定のバージョンをインストール
# バージョンを指定してインストール
pyenv install 3.6.1

# インストール後、以下のコマンドを叩く必要がある
pyenv rehash
■インストールしたpythonのバージョンの中でGlobalに使うものを指定
# Global指定
pyenv global 3.6.1

# 確認
pyenv version
■インストールしたpythonのバージョンの中でLocalに使うものを指定
# working dirctoryに移動
cd path/to/working/dir

# Local指定
pyenv local 3.6.1

# 確認
pyenv version

とりあえずこんなもんですかね。それでは。