Python2 が別環境で必要になった

しかし 2 と 3 が同居しているのもどうかと思ったので pyenv を入れることにした。

参考:

Python3 と pip のアンインストール

まずは pip でインストールしたモジュールを削除する。どこにインストールされているか調べて、 全てを消去する。

コマンド

pip show [パッケージ名]

例として、requestsを見てみる。

出力結果

Name: requests
Version: 2.18.4
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /Users/t-fuku/.pyenv/versions/3.5.1/lib/python3.5/site-packages
Requires: certifi, urllib3, chardet, idna

Locationからわかる。

現在入ってるモジュールをfreezeで書きだし、テキストファイルに保存 それをuninstallで読み込む

pip freeze > piplist.txt
sudo pip uninstall -r piplist.txt

何故かパーミッションでエラーが出たので、sudoも付けておいた

$ pip3 show neovim
Name: neovim
Version: 0.2.6
Summary: Python client to neovim
Home-page: http://github.com/neovim/python-client
Author: Thiago de Arruda
Author-email: tpadilha84@gmail.com
License: Apache
Location: /Applications/Homebrew/lib/python3.7/site-packages
Requires: greenlet, msgpack
Required-by: 

ここから /Applications/Homebrew/lib/python3.7/site-packages にインストールされているのがわかる。 コレを覚えておいて、全てのモジュールを削除する。

$ pip3 freeze > piplist.txt
$ pip3 uninstall -r piplist.txt 
Uninstalling greenlet-0.4.14:
  Would remove:
    /Applications/Homebrew/include/python3.7m/greenlet/greenlet.h
    /Applications/Homebrew/lib/python3.7/site-packages/greenlet-0.4.14.dist-info/*
    /Applications/Homebrew/lib/python3.7/site-packages/greenlet.cpython-37m-darwin.so
Proceed (y/n)? y 
  Successfully uninstalled greenlet-0.4.14
Uninstalling msgpack-0.5.6:
  Would remove:
    /Applications/Homebrew/lib/python3.7/site-packages/msgpack-0.5.6.dist-info/*
    /Applications/Homebrew/lib/python3.7/site-packages/msgpack/*
Proceed (y/n)? y
  Successfully uninstalled msgpack-0.5.6
Uninstalling neovim-0.2.6:
  Would remove:
    /Applications/Homebrew/lib/python3.7/site-packages/neovim-0.2.6.dist-info/*
    /Applications/Homebrew/lib/python3.7/site-packages/neovim/*
Proceed (y/n)? y
  Successfully uninstalled neovim-0.2.6

これで python 本体を消すことができる。

アンインストール

brew uninstall formula
brew uninstall python3

こんな感じで削除が完了するが、 Homebrew/lib/python3.7 ディレクトリが残っているので消去する。

このディレクトリをゴミ箱に移動

これで完了。

pyenv をインストールする

Pyenv をインストール

Homebrew で入れていた Python をアンインストールできたら GitHub – pyenv/pyenv を参考に Pyenv をインストール。

$ brew install pyenv

.bash_profile に環境変数や init コマンドを追加。

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

ターミナルを再起動して動作確認。

$ pyenv --version
pyenv 1.0.10

Python をインストール

Python.org あたりで最新版の Python バージョンを調べて、以下コマンドでインストール。

$ pyenv install 2.7.13

インストールした Python をグローバルで使うように設定。

$ pyenv global 2.7.13

変更されたか確認。

$ pyenv versions
 
  system
* 2.7.13 (set by /Users/karasawa/.pyenv/version)

バージョン確認。

$ python --version
Python 2.7.13

基本は rbenv と同じようだ。インストールをする。

brew install pyenv

.bash_profile に以下を追加する。

#pyenv command
export PYENV_ROOT=/Applications/Homebrew/opt/Python
eval "$(pyenv init -)"

以下の pyenv ヘルプを見てわかるように、 pyenv versions で利用できるバージョンが一覧で出力される。

$ pyenv
pyenv 1.2.7
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

今回は 3.7.0 をインストールする。

pyenv install 3.7.0

しばらく待つとインストール完了する。 ほとんど rbenv と使用感は同じ。