Python2.7系と3.4系でそれぞれ64bitなscipyを使えるようにする@windows7
公開後にpath関連で少し修正しました.
2.7系列と3.4系列を同時に使えるようにするためのメモ.
Windows7 64bitで64bit版のpythonからnumpy+scipy+matplotlibを使えるようにする.
デフォルトは3.4系列を使う.
インストール
2.7系のインストール
2.7系はEnthought Canopy*1でインストール.インストール先はユーザーフォルダ以下で
C:\Users\<username>\AppData\Local\Enthought\Canopy\App
とかにいる.Canopyでインストールすればnumpyとかscipyは一緒にインストールされる.
64bitでも特に問題なし.
3.4系のインストール
3.4系列はpythonの公式HPからダウンロードしてインストール.64bit版を選ぶ.デフォルトだとインストール先は
C:\Python34\
numpy,scipy,matplotlibは個別にインストールする.ただし,公式は32bit版のインストーラしか用意されていない.
そこで,
Python Extension Packages for Windows - Christoph Gohlke
を利用させて貰う.過去はここで64bit用のexeが用意されていたみたいだけど,今はwhlファイルで配付されている.ここから各種whlファイルをダウンロードしてくる.インストールにはpipを使う.
python3.4以上はpipがデフォルトでインストールされている.3.3系の場合は別に入れてくる.
これらのインストール時は2.7系と3.4系で混じるとめんどくさい*2ので,
C:\Python34\Scripts\
にpip.exeがいるので,ここにダウンロードしたファイルを移動してから
$ pip install "numpy-1.9.2+mkl-cp34-none-win_amd64.whl" $ pip install "scipy-0.15.1-cp34-none-win_amd64.whl" $ pip install "matplotlib-1.4.3-cp34-none-win_amd64.whl"
みたいな感じでnumpyなどをインストールする.
環境の切り替え
エイリアスの設定
環境の切り替えを容易にするためにエイリアスを作る.
$ doskey python27="C:\Users\<usernamer>\AppData\Local\Enthought\Canopy\User\python.exe" $ doskey python34="C:\Python34\python.exe"
これでどこからでもpython27とpython34と打てば2.7と3.4を適切に使い分けられる.
ただし,doskeyの設定はコマンドプロンプトを一度閉じると消えてしまう.
そこで,コマンドプロンプトの起動時に自動でdoskey登録を行うように設定する.
上のコマンドを
C:\Users\Username\macros.txt
に保存する.
その後,レジストリエディタから
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
に字列値「AutoRun」を追加して,データ値を
doskey /macrofile=%userprofile%\macros.txt
としておく.これでコマンドプロンプトの起動時にdoskeyが設定される.
確認
$ python27 $ python34
でそれぞれ2.7系と3.4系が呼び出せる.
C:\Users\<usernmae>>python27 Enthought Canopy Python 2.7.6 | 64-bit | (default, Sep 15 2014, 17:36:35) [MSC v .1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> C:\Users\<usernmae>> C:\Users\<usernmae>>python34 Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:16:31) [MSC v.1600 64 bit (AM D64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> ^Z C:\Users\<usernmae>>
こんな感じでコマンドラインも変化するはず.
追記
pathが通ってないかと思ったけど見落としてただけでちゃんと通ってた.なので環境変数設定用のbatは必要ないですね.ちょくせつpythonを呼び出してやればOKです.GUIなpythonwとかも含めて使いたい場合は環境変数のbatファイルを作った方が良いかも.
以下修正前の環境変数切り替え部分
環境変数の切り替え用batファイルの作成
C:\Users\<username>\AppData\Local\Enthought\Canopy\User\Scripts\activate.batを参考に作る.このファイルの中で
@echo off set "VIRTUAL_ENV=C:\Users\<username>\AppData\Local\Enthought\Canopy\User" (中略) set "PROMPT=(Canopy 64bit) %PROMPT%" (中略) :ENDとなっているのを
@echo off set "VIRTUAL_ENV=C:\Users\<username>\AppData\Local\Enthought\Canopy\User" (中略) set "PROMPT=(Python2.7@Canopy 64bit) %PROMPT% (中略) :ENDとかにして環境変数の設定と,コマンドラインの表示で2.7系列に設定しているのを明示する.
このactivate.batをC:\Python34にもコピーして,こちらは
@echo off set "VIRTUAL_ENV=C:\Python34" (中略) set "PROMPT=(Python3.4 64bit) %PROMPT%" (中略) :ENDとして3.4系の環境であるのを強調しておく.これで,これらのbatファイルを呼び出すごとに2.7系列と3.4系列の環境が切り替えられる.
エイリアスも同様に書き換えておく.$ doskey python27="C:\Users\<username>\AppData\Local\Enthought\Canopy\User\Scripts\activate.bat" $ doskey python34="C:\Python34\activate.bat"