おっぱいそん!

pythonを数値計算に使うときのテクニックとかをまとめていきたい。

anacondaでインストールしたpython2とpython3をsublimeText上で使う

普段はMACでpython2.7でSublimeTextというエディターを使ってコードを書いていますが、python3を使いたいことがあったので、ptthon2と3を今の環境のまま共存できるようにしました。
(完全に自分用の忘備録で他のサイトを見たほうが分かりやすいと思うので、この記事は読まない方がいいです。)

anacondaでPython2と3を共存させる

まず、anacondaでpython3を追加でインストールするには、ターミナルで

conda create -n py3 python=3.6

conda create -n py35 python=3.5 anaconda

ちなみに、この"py3"という部分は自分でpython3に切り替える時に使う名前なので、好きな名前にできます。

[追記]
2017.1.4現在anacondaでインストールできる安定版はPython3.5(Python3の安定版はPython3.6だが、Anacondaでパッケージまで含めてインストールできるのは恐らく3.5まで)。上の"conda create -n py35 python=3.5 anaconda"の"anaconda"を書き忘れると、パッケージ類(numpyとか)がインストールされず、Pythonだけしか入らないっぽいので注意。

インストールが完了すると、以下のメッセージが出ました。

# To activate this environment, use:
# $ source activate py3
#
# To deactivate this environment, use:
# $ source deactivate

書いてある通り、何もしなければ元々入っているpython2が使われ、python3を使う際には"source activate py3"と、python2に戻るには"source deactivate"をターミナルで行います(最初、activateをactiveとタイプしていて、怒られた...)。

これでpython2とpython3を切り替えられるようになりました。実際、

import sys
print(sys.version_info)

のようなファイルを作って、ターミナルで実行してみると、

sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

sys.version_info(major=3, minor=6, micro=0, releaselevel='final', serial=0)

と確かに2と3を切り替えれられていることが確認できました。

AnacondaでインストールされているpythonとそのPATHの一覧は

conda info -e

を使って見ることができます。私の場合は、

# conda environments:
#
py3                      /Users/おっぱいそん/anaconda/envs/py3
root                  *  /Users/おっぱいそん/anaconda

で、rootの方が元々インストールされているpython2でpy3が今、インストールしたpython3です。*が付いている方が今、アクティブになっているpythonです。
参考:PENGUINITIS - Anaconda における Python 2 と Python 3 の共存

[追記]
最初、Python3しかインストールされず、パッケージが入っていなかったが、それは"conda create -n py35 python=3.5 anaconda"のanacondaを書き忘れたためっぽい。(以下は解決したので削除)

*** 必要なパッケージ−のインストール
上記だけではPython3がインストールされただけで、Numpyなどのパッケージはインストールされていません。
(Python2に対しては必要となるパッケージがインストールされるのに、追加でインストールするPython3に対してはパッケージがインストールされないのは仕様なのだろうか?)
必要なパッケージがある場合は、"source activate py3"(py3の部分は自分で付けた名前)でPython3に切り替えてから、

conda install numpy
conda install scipy
conda install matplotlib

などで適宜、必要なパッケージをインストールしてください。
私の場合はMatplotlibが以下のようなエラーが出て、インストールできなかった... (とりあえず、すぐに使わないので放置する....)

UnsatisfiableError: The following specifications were found to be in conflict:
  - matplotlib
  - python 3.6*
Use "conda info <package>" to see the dependencies for each package.


SublimeTextでPython2と3を切り替える

次に、SublimeTextでpython2と3を切り替えられるようにします。
SublimeTextではSublimeRopeという統合開発環境をインストールすることで、SublimeText上でpythonを実行できる(⌘Cmd+b)ようになります。
実行する際に使うPythonのPATHは、"Preferences/Settings - User"で設定できます。

{
	"build_env":
	{
		"PATH": "/Users/おっぱいそん/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/texbin"
	},
}

に書いてあるのがPythonのPATHなので、"/Users/おっぱいそん/anaconda/bin"を上記で調べた"/Users/おっぱいそん/anaconda/envs/py3/bin"にすることで、python3に切り替えられます。
毎回、設定を書きかえるのは結構めんどうなので、もっといいやり方がありそうですが... (もっといいやり方があったら誰か教えてくださいm(__)m)
参考:Sublime TextでPython環境を構築する話 - 酒飲みの備忘録