白猫学生のブログ

自分の趣味をひたすら投稿するブログ

仮想環境を使わずにAnacondaを用いてPython2とPython3を共存させる方法 (Mac)

はじめに

Pythonはずっと昔に3系列にバージョンがアップされましたが,いまだに2系列を使用している人が数多くいると思います.(自分もその一人です)
当時はライブラリが3系列に対応していなかったり,仕様の微妙な変更等が理由でPython3への移行をしなかった方が多かったと思いますが,現在はライブラリも充実し,ユーザー数も増えてきています.


ただ,未だにPython2にしか対応していないライブラリが存在していることも事実で,今の環境を捨ててでもPython3に移行することは非常に危険です.
Anacondaを用いれば仮想環境上でPython3を使用することもできますが,デフォルトでは何も入っていないため,環境を再構築したり,毎回その環境を起動するのが大変です.
そこで,今回は現在の環境を残したままPython2とPython3の競合をしないように併用する方法を紹介します.


ちなみに,Windows版はこちらです.
whitecat-student.hatenablog.com


最終目標

今回は,現在の環境を残したまま新しいAnacondaを導入することを目標とします.
なので例えば

python

とコマンドプで入力すれば,Python3系列が起動し,

python2

とコマンドで入力すれば,Python2系列が起動します.

同様に,ほかのコマンドも2系列を使用する場合は語尾に2をつけるようにします.例えば2系列にpipでパッケージをインストールしたければ

pip2 install パッケージ名

と入力します.3系列にインストールしたい場合はいつも通り「pip」だけで大丈夫なようにします.
このようにすれば,3系列をデフォルトにしたままPython2系列を住み分けして使用することができます.


初期状態

まずはじめに,Anaconda2とAnaconda3の両方をインストールしてください.
もし片方がすでにインストールされている場合は,もう片方をインストールしてください.

Anacondaのインストールは以下のサイトを参考にしてください.

Anaconda を利用した Python のインストール (Windows) – Python でデータサイエンス


パスの設定

Anacodna2,Anaconda3を導入したらパスが自動で設定されます.
パスの設定はホームディレクトリ直下にあるファイル「.bash_profile」で設定しているため,「vi」や「emacs」などで以下の順番になるように編集してください.
もし,「.bash_profile」の設定ファイルがない場合は自動設定にチェックを付けずにインストールした可能性がありますので,ファイルを作成して設定してください.
これで,デフォルトではPython3が起動するようになります.
(デフォルトでPython2を使用したい場合は順番を逆にしてください.)

f:id:KevinArrow:20170710190314p:plain


コマンドの設定

これから,Python2系列用にコマンド名を変更します.Anaconda2のbin内にある以下の名前をコピーして変更してください.

  • anaconda -> anaconda2

  • conda -> conda2

  • easy_install -> easy_install2

  • pip.app -> pip2.app

  • spyder -> spyder2

これで,設定は終了です.再度に再起動してください.
今回新しくコマンドを変更したのは,anaconda, conda, easy_install, pip, spyder, python の5つで,語尾に2をつけるだけでPython2系列で起動します.
もし2系列をデフォルトにしたい場合はパスの優先順位を逆にし,Anacodna3内の名前を変更してください.


利点

この方法で2つのバージョンを共存させることで,従来の環境を残したまま新しく3系列を追加することができます.Anaconda上に3系列を仮想環境で作成するのと違い,
Anacondaにデフォルトでインストールされているパッケージの使用もでき,実行も楽で,毎回仮想環境を起動する必要がありません.


おわりに

これで徐々にでもPython3に移行できたらうれしい.