白猫学生のブログ

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

Anacondaを用いてPython2とPython3を共存させる方法 (Windows)

はじめに

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


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



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


最終目標

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

python

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

python2

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

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

pip2 install パッケージ名

と入力します.このようにすれば,3系列をデフォルトにしたままPython2系列を住み分けして使用することができます.


初期状態

初期状態は,下図のようにデフォルトで存在しているAnaconda2にAnaconda3を新しくインストールした状態から始めます.

f:id:KevinArrow:20161228190434p:plain

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

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


追記(2017/1/10):Windows8.1以下でAnacondaのパスがすでに設定されている状態でインストールする場合,競合してエラーを起こす可能性があります.
その場合はパスの設定からAnacondaを削除し,パスを自動設定しないでインストールしてください.その後,次に説明するパスの設定に合わせてください.


パスの設定

Anacodna2,Anaconda3の両方が入っている場合は両方のパスがデフォルトで設定されていることがありますが,
パスの順番を以下のように設定し直してください.
もし,Windows8.1以前のOSを使用している場合は,パスの順番をAnaconda3が先に来るようにしてください.
これで,デフォルトではPython3が起動するようになります.

f:id:KevinArrow:20170118012659p:plain


コマンドの設定

これから,Python2系列用にコマンド名を変更します.まず初めに,Anaconda2内にある「python.exe」をコピーして「python2.exe」を作成してください.


次に,Anaconda2のScripts内にある以下の名前を変更してください.

  • anaconda.exe -> anaconda2.exe
  • anaconda-script.py -> anaconda2-script.py

  • conda.exe -> conda2.exe
  • conda-script.py -> conda2-script.py

  • easy_install.exe -> easy_install2.exe
  • easy_install-script.py -> easy_install2-script.py

  • pip.exe -> pip2.exe
  • pip-script.py ->pip2-script.py

  • spyder.exe -> spyder2.exe
  • spyder-script.py -> spyder2-script.py

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


利点

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


おわりに

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