LoginSignup
0
3

More than 5 years have passed since last update.

(初心者)Macでpyenvを使用するときのメモ

Posted at

背景

流行りのTensorflowのチュートリアルをやるよりもグラフィカルに様子を見たかったので、以下のページを参考に進めようとしたら画像を表示するところでトラブルが。。

pylabで画像を表示できなかったのをきっかけに環境を見直しました。
備忘録として残します。

ちなみに、画像を表示できなかったのは、単に最後にplt.show()をしていなかった為なのも原因の一つでした。

環境

Mac OS X El Capitan (10.11)

$ pyenv --version
pyenv 20160509

$ pyenv versions
  system
* 2.7.10 (set by /Users/butada/.python-version)
  3.4.4

問題点の整理

使用しているpythonがOSのになっていておかしい

pyenvを使っている割にOSと同じPythonを使っていることに気づきました。

$ which python
/usr/local/bin/python

.bash_profileにinitが記載されていなかった

pyenvの構築手順を読み直したところ、
.bash_profileへの記載が不足していました。

eval "$(pyenv init -)"   # ここが不足していた
eval "$(pyenv virtualenv-init -)"

2行目は書かれていたが、1行目が書かれていなかった。。
これによって、pipによってインストールされるライブラリは
OSのほうにインストールされてしまっていた。。

backend問題

systemのPythonでないとbackend問題が生じるので、backendをmacosxからTkAggへ変更します。
変更すべきファイルは以下のコマンド実行でわかります。

python -c "import matplotlib;print(matplotlib.matplotlib_fname())"

私の環境では以下のパスにありました。

vi /Users/butada/.pyenv/versions/2.7.10/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc

#backend      : macosx # comment out 2017/1/4
backend      : TkAgg

動作確認

今回はpyenvが動作せずにmatplotlibはOSの方にインストールされていたので、正しくpyenvを設定した後、matplotlibをインストールする必要がありました。
matplotlibのインストール説明は省略します。

グラフを表示できるかを確認

以下のページのコードを実行して確認しました。
http://qiita.com/saj_kz/items/40dbfbb84dabcd2a9b46

メモ:
ウィンドウを閉じる度に plt.show() を実行し直せば
ウィンドウが表示されるのかを思ったのですが、
plt.plot(x,y) からやり直さないとダメでした。

pyenvが動作しているかを確認

以下のように/usr/bin/usr/local/binではなくホームディレクトリ配下であればOK。

$ which python
/Users/butada/.pyenv/shims/python

pyenvでPythonバージョンの切り替わるかを確認

pyenvによってpythonバージョンが切り替わることを確認する。

$ mkdir tensorflow
$ cd tensorflow

$ pyenv local 3.4.4
$ python --version
Python 3.4.4 

$ pyenv local 2.7.10
$ python --version
Python 2.7.10

$ pyenv local system
$ python --version
Python 2.7.10  # OSにインストール済みのPythonも同じバージョンなので変化がわかりにくいですね。。

それぞれにインストールされているライブラリも確認できます。

$ pyenv local 3.4.4
$ pip list

$ pyenv local 2.7.10
$ pip list

$ pyenv local system
$ sudo pip list  # OSのなので、listでは必須ではありませんがinstall時にはsudoが必要。

メモ:
バージョンの切り替え方法は3種類。

  • global
  • local
  • shell

globalはシステム全体ということだったので怖くて試していません。
localはそのディレクトリ配下に反映させます。.python_versionファイルを作成して設定を保存しているようです。
shellはそのshellのセッションにのみ反映させるようです。

ほか、使えそうなコマンド

  • pyenv versions
  • pyenv install --list
  • pyenv install 3.4.4

pyenv local systemシステムのデフォルトのPythonに戻るようです。

最後に

pyenvの使い初めがわかんない!とか、virtualenvと同時に使っている時の混乱が生じた時にここに戻って心を落ち着けようと思います。

参考

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3