MacにpyenvをインストールしてPython環境を構築する

2017年4月28日

Python

これまで Mac の Python は Homebrew で入れていましたが、あるときから何かおかしくなってしまい、pip install が動かなくなってしまいました。Pyenv に乗り換えたので手順を残しておきます。Pyenv のインストール方法、Python のインストール方法、pip によるパッケージのインストール方法、更新方法を紹介します。

目次

  1. Homebrew で入れていた Python をアンインストールする
  2. Pyenv をインストール
  3. Python をインストール
  4. pip で Python パッケージをインストール
  5. pip でインストールしたツールの一覧を表示
  6. pip でインストールしたパッケージを更新
  7. pip でインストールしたパッケージを一括更新

Homebrew で入れていた Python をアンインストールする

Homebrew で入れていた Python をアンインストール。brew uninstall python すると依存関係エラーでアンインストールできなかったので、依存関係エラーが出てきたツールを全部アンインストール。私の環境では以下ツールを順番に消していきました。

$ brew uninstall emacs
$ brew uninstall librsvg
$ brew uninstall gdk-pixbuf
$ brew uninstall pango
$ brew uninstall gobject-introspection
$ brew uninstall python
$ brew uninstall ansible
$ brew uninstall fabric
$ brew uninstall awscli

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

pip で Python パッケージをインストール

pip も使えるようになっているので、好きなパッケージをインストール。

$ pip install ansible fabric

pip でインストールしたツールの一覧を表示

$ pip list

ansible (2.3.0.0)
asn1crypto (0.22.0)
awscli (1.11.79)
boto (2.46.1)
boto3 (1.4.4)
botocore (1.5.42)
...

pip でインストールしたパッケージを更新

pip list に o オプション(--outdated)をつけると更新があるパッケージを教えてくれる

$ pip list -o

awscli (1.11.79) - Latest: 1.11.82 [wheel]
botocore (1.5.42) - Latest: 1.5.45 [wheel]
colorama (0.3.7) - Latest: 0.3.9 [wheel]
setuptools (28.8.0) - Latest: 35.0.2 [wheel]

更新するには pip install に U オプションをつける

$ pip install -U awscli

pip でインストールしたパッケージを一括更新

以下ワンライナーで更新

$ pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

更新後に依存関係をチェック

$ pip check

awscli 1.11.116 has requirement colorama<=0.3.7,>=0.2.5, but you have colorama 0.3.9.

依存関係が壊れている場合は上記のように通知されるので、指定されたバージョンをインストール

$ pip install colorama==0.3.7

-技術ブログ
-