Pythonを使う時、なんとなく、Canopy ExpressっていうIDEを使ってました。
あまり深い理由はなく、オライリーの『Pythonによるデータ分析入門』でCanopy使いましょうって書いてあったり、IPythonのインストール解説ページにいくと、IPythonを使いたいなら単独で入れるのではなくAnacondaかCanopyのようにパッケージ化されたものを使うべしと書いてあった(リンク)からです。
それで、とりあえず使えたから良いんですが、
- スリープになるたびに不正終了としてエラーログをEnthoughtに送信するか聞かれる
- デバッガを使おうとすると有料
- スクリプトの特定部分を選択してその場で実行ってのができない(実行したい分だけコピペしてコンソールに貼れば実行できるけど、カーソルで選択した部分をcommand + enterで実行できる方がよい)
など不満な点もあったので、いったんアンインストールして、試しにSpyderを入れてみたらえらく使いやすかったので、しばらくSpyderでいってみたいと思います。
Python自体、超初心者なので、「乗り換え」みたいな大げさな話ではなく、色々試してみてる段階です。
参考記事:
いろいろ試した結果、pythonのIDEはSpyderに落ち着いた件--listen2the Silence
Canopyのアンインストール
Spyderのインストールの前に、Canopyのアンインストールはやや注意が必要でした。手軽に削除というわけにはいかず、
Uninstalling and resetting Canopy – Enthought Knowledge Base
このページに書いてある手順を踏む必要があるようです。
しかもこれはCanopyを一度アンインストールして再インストールしたい人向けに書かれてあるので、私はこの通りにやったわけでもないです。
具体的には、上記ページの解説の「OS X」のところに従いつつもやや修正して、
- CanopyをPythonのデフォルトツールから外す
- Macを再起動
- Canopy.appを削除
- 「~/Library/Enthought/」「~/Library/Canopy」を削除。上記解説ページの手順だと、再インストールを想定してか、「Enthought」のディレクトリは残すと書いてあるけど、無視して根本から断ち切ることにした。
- 「locations.cfg」の削除も、「~/.canopy/」をまるごと削除することにした。
- ホームディレクトリにある「.bash_profile」「.profile」をテキストエディタで開いて、CanopyとかEnthoughtという単語が出てくるパラグラフを削除
- Macを再起動
という順に作業しました。
AnacondaとSpyderのインストール
AnacondaとSpyderを入れるのはかなり簡単でした。なお私はMacつかってて、OSはYosemiteです。
Download Anaconda now! | Continuum
ここでGraphical Installerってのをダウンロードしてインストールし、つぎに、
Releases · spyder-ide/spyder · GitHub
ここでSpyderをダウンロード・インストールしました。
Spyderは、試しにPython2用のもの(Spyder-Py2)とPython3用のもの(Spyder)を両方インストールしましたが、ふつうに併用できるようです。併用してると、「このモジュールは2にはインストールしたけど3にはしてなかったっけ?」みたいな混乱が後々予想されますが。
じつはAnacondaだけ入れればOKだった。。。(2015.11.4追記)
追記です。
じつはAnacondaだけ入れておけば、その中にSpyderが埋め込まれているので、Spyder.appを別途インストール必要も、後述のようにインタープリタの紐付けを修正する必要もないことが分かりました。
なので次のエントリで、いったん全部アンインストールして、Anacondaを入れなおしました。
従って、↓の内容はもはやあまり意味がないです。この方法でも使うことはできますが。
Spyderから動かすPythonインタープリタ等の変更
1つ注意点があって、Mac版のSpyderを単にインストールしただけだと、全てが"Spyder.app"の中に梱包された材料で動くようです。
理解して使う分には問題とまでは言えないでしょうけど、インタープリタはもちろん、ライブラリやモジュールも全部"/Applications/Spyder.app"の配下にブチ込まれているわけで、これは気持ち悪い。もともとインストールしてあったPythonとは無関係の世界がここに出来上がる感じです。せっかくこれまでpipとか使ってインストールしてたモジュール等はどうなんのと。
というわけで、
まずこの記事を参考に、
Python Spyderで新しいモジュールが使用できない場合の対処法--listen2the Silence
Preference > Console > Advanced settingsの一番上の項目で、Spyderが起動するPythonインタープリタを、もともと自分のMacに入れてたやつに紐付けしなおした(Spyder-Py2からはPython2、SpyderからはPython3を設定)。
次に上記参考記事では、PYTHONPATH managerでそれぞれのインタープリタが入っているディレクトリを指定しているのだが、これはべつにやらなくていいと思う。
インタープリタを紐付しなおした時点で、次回起動時からはそのインタープリタに設定されてるPYTHONPATH(環境変数)やsys.pathが読み込まれるようになるので、いわゆる「pathは通ってる」状態で問題ないんじゃないだろうか。*1
PYTHONPATH managerで何も追加しなくても、Spyder上のコンソールからsys.pathを確認してみると以下のようになる。
['', '/Users/ユーザ名/anaconda/lib/python34.zip', '/Users/ユーザ名/anaconda/lib/python3.4', '/Users/ユーザ名/anaconda/lib/python3.4/plat-darwin', '/Users/ユーザ名/anaconda/lib/python3.4/lib-dynload', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages/Sphinx-1.3.1-py3.4.egg', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages/setuptools-17.1.1-py3.4.egg', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages/aeosa', '/Applications/Spyder.app/Contents/Resources/lib/python3.4/minimal-lib']
一方、ターミナルから同じインタープリタを起動してsys.pathを確認すると、
['', '/Users/ユーザ名/anaconda/lib/python34.zip', '/Users/ユーザ名/anaconda/lib/python3.4', '/Users/ユーザ名/anaconda/lib/python3.4/plat-darwin', '/Users/ユーザ名/anaconda/lib/python3.4/lib-dynload', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages/Sphinx-1.3.1-py3.4.egg', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages/aeosa', '/Users/ユーザ名/anaconda/lib/python3.4/site-packages/setuptools-17.1.1-py3.4.egg']
となっている。
順番が若干違うのと、Spyderから見た場合は"Spyder.app"内のディレクトリが最後に加えられている。まずインタープリタのデフォルトのsys.pathを持ってきて、すこし改変して使わせているような感じなのだろうか。いずれにしても、内容的に、PYTHONPATH managerで何か追加しなければならないわけではないと思う。
あとついでに、Preference > Console > Advanced settingsの中にあるPYTHONSTARTUPの設定というところで、"~/anaconda/pkgs/spyder-2.3.5.2-py34_0/lib/python3.4/site-packages/spyderlib/"という場所に置かれているscientific_startup.pyを設定しておきました。Pythonの起動時に自動的に読み込むモジュールとかが設定されてるやつです。
Anacondaが提供してくれている、科学計算用のおすすめインポート一式という感じで、一部抜粋するとこんな感じ。
# Import modules following official guidelines: try: import numpy as np except ImportError: __has_numpy = False try: import scipy as sp except ImportError: __has_scipy = False try: import matplotlib as mpl import matplotlib.pyplot as plt #analysis:ignore except ImportError: __has_matplotlib = False
このほか、sysとかosなどもインポートされます。Pandasも入れたほうが良いような気がするので後で追記しようかな。
AnacondaはPython3用にしかインストールしていないので、Spyder-Py2の方ではPYTHONSTARTUPの設定はそのままにしてますが、そのままだと"/Applications/Spyder-Py2.app"配下の何かを参照していて気持ち悪い面もあり、あとで調べて変更します。
Spyderを使う
使えるようになりました。
↓のような3ペインで使い始めました。
たいへん打ちやすい気がします。
この他、コーディングやファイル管理を支援する各種ツールのウィンドウを出すことが可能です。シェルについては、Python標準のシェルを操作する「Python Console」ってウィンドウと、IPythonを操作する「IPython Console」っていのが両方使えます。