Windows環境にPython 3.5.1+numpy+scipy+αをインストールした際のまとめ
(Pythonはじめて1週間程度の人間が書いています)
OS
Windows 10 Pro (64 bit)
インストールしたPythonのバージョン
Python 3.5.1 (32 bit)
pipでインストールしたPythonのライブラリ
wheel (0.29.0)
numpy (1.10.4)
scipy (0.17.0)
pandas (0.17.1)
matplotlib (1.5.1)
scikit-learn (0.17)
Python 3.5.1のインストール
- https://www.python.org/ にアクセス
- [Downloads/Windows/Python 3.5.1]を選択し[python-3.5.1.exe]をダウンロード
- [python-3.5.1.exe]を実行
- 最初の画面で[Add Python 3.5 to PATH]にチェックを入れて、[Install Now]をクリック
- コマンドプロンプトからpythonが起動できることを確認
C:\Users\ktanaka>python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
C:\Users\ktanaka>
pipのアップグレード
Python 3.4からパッケージ管理ツールpipが標準でインストールされている。
コマンドプロンプトから以下のコマンドを実行しpipをアップグレード
C:\Users\ktanaka>python -m pip install --upgrade pip
Collecting pip
Downloading pip-8.0.2-py2.py3-none-any.whl (1.2MB)
100% |################################| 1.2MB 227kB/s
Installing collected packages: pip
Found existing installation: pip 7.1.2
Uninstalling pip-7.1.2:
Successfully uninstalled pip-7.1.2
Successfully installed pip-8.0.2
C:\Users\ktanaka>
以降の説明では、
C:\Users\ktanaka>python -m pip install --upgrade pip
の様なコマンドプロンプトからの実行は
python -m pip install --upgrade pip
と表記し、ログも省略します。
python -mで始まる表記があったら、コマンドプロンプトからの実行を意味しています。
wheelパッケージのインストール
バイナリを含んだ.whlファイルをpipでインストールする為の仕組み・・・とどこかで読んだ気がする
python -m pip install wheel
numpy, scipyのインストールに関して
numpyやscipyは内部で数値演算ライブラリを呼び出しています。よって数値演算ライブラリのバイナリとnumpy, scipyが関連付けられる必要があります。今回はいろいろと試したのですが、scipyのインストールで苦労しました。scipyがnumpyと関連づいているらしいので、numpyのインストールも含めて自分の環境における失敗事例と共に説明します。
pipでの通常インストール(失敗)
python -m pip install numpy
python -m pip install scipy
ログを見た感じだとnumpy, scipyのインストール処理はそれぞれ以下の様になっているようです。
環境に数値演算ライブラリがインストールされているかどうかを確認
インストールされている
インストールされている数値演算ライブラリと関連付けてnumpyをインストール
インストールされていない
Visual Studio等のコンパイラがインストールされているかどうかを確認
インストールされている
コンパイラを用いて数値演算ライブラリのバイナリを生成し、生成したバイナリと関連付けてnumpyをインストール
インストールされていない
インストール失敗
環境に数値演算ライブラリがインストールされているかどうかを確認
インストールされている
インストールされている数値演算ライブラリと関連付けてscipyをインストール
インストールされていない
インストール失敗
numpyに関しては自分の環境が
「数値演算ライブラリがインストールされていない」
「Visual Studio 2015がインストールされている」
となっていたので、Visual Studio 2015によるコンパイルが大量に走った後、インストールに成功しました。
scipyに関しては失敗しました。インストール処理が
「numpyと同様にソースコードが同封されていてVisual Studio 2015でバイナリを生成する等の処理が走る」
もしくは
「numpyで作成したバイナリと関連付ける」
となっていてくれたらうれしかったのですが、そうはならず、エラーで終了しました。
※numpyインストール時に、数値演算ライブラリがインストールされている場合に、Visual studio等のコンパイラが環境にインストールされている必要があるかどうかについては調べていません。
##superpackを利用する方法(断念)
2016/02/17の段階だとPython 3.5.1に対応したものがなかったので断念
https://sourceforge.net/p/numpy/activity/
https://sourceforge.net/p/scipy/activity/
##コンパイル済みバイナリが同封された.whlファイルを用いたpipインストール(成功)
最終的にこの方法でインストールしました。
- http://www.lfd.uci.edu/~gohlke/pythonlibs/ にアクセス
- numpy-1.10.4+mkl-cp35-none-win32.whl および scipy-0.17.0-cp35-none-win32.whlをダウンロード
※Python 3.5.1 なので xxxcp35xxx.whlを選択しています。
※numpyはmkl(Intel Math Kernel Library)が付属した.whlファイルを選択しています。 - pipを使ってインストール
python -m pip install C:\Users\ktanaka\Downloads\numpy-1.10.4+mkl-cp35-none-win32.whl
python -m pip install C:\Users\ktanaka\Downloads\scipy-0.17.0-cp35-none-win32.whl
この方法で、インストールおよびサンプルスクリプトの実行に成功しました。
##補足
以下の組み合わせでインストールを行った場合、インストールには成功するのですが、スクリプト実行時にエラーが出ました。
python -m pip install numpy
python -m pip install C:\Users\ktanaka\Downloads\scipy-0.17.0-cp35-none-win32.whl
from scipy import stats
・・・
from ._ufuncs import *
ImportError: DLL load failed: The specified module could not be found.
numpyとscipyで同じ数値演算ライブラリが参照されるようにインストールする必要があるようで、配布サイトの説明文にも「配布しているバイナリ(.whl)はnumpy+mkl(Intel Math Kernel Library)に依存していているよ」と書いてあるので同サイトで配布されているnumpyの.whlを使ってインストールを行う事で成功しました。
Many binaries depend on NumPy-1.10+MKL and the Microsoft Visual C++ 2008 (x64, x86, and SP1 for CPython 2.6 and 2.7), Visual C++ 2010 (x64, x86, for CPython 3.3 and 3.4), or the Visual C++ 2015 (x64 and x86 for CPython 3.5) redistributable packages.
#その他のパッケージのインストール
以下のパッケージのインストールを行いました。
pandas (0.17.1)
matplotlib (1.5.1)
scikit-learn (0.17)
python -m pip install pandas
python -m pip install matplotlib
python -m pip install scikit-learn
pip便利
#終わりに
WindowsでのPython開発環境構築において
- 最初から色々なパッケージがそろっているAnacondaが便利
- WindowsへのPythonインストールは困難
という事前情報を聞いていたのですが
- 最小構成でインストールがしたい
- Pythonのパッケージ管理周りのことを理解しておきたい
- http://qiita-kobito-team-meetup14.peatix.com/ に参加した際に、Atomエディタがすごいらしいと聞いていたので使いたい:D
- pip等が標準実装されていてインストール作業が大分楽になっているらしい
といった理由からインストールをしてみました。
numpyやscipyのアップデートも考えると、数値演算ライブラリを別途インストールして、通常のpipでインストールできるようになるとより良いと思います。(その方法でうまくいくかどうかは不明)時間が出来たら試してみます。
今はAtomエディタにscriptパッケージを追加して、Ctrl+Shift+Bで実行してます。
でもAnacondaだと選択した行のみの実行等が出来て便利です。
Atomエディタのパッケージで選択行実行が出来るパッケージ知っている方がいたら教えてもらえると幸いです_(..)
#参考にしたサイト
整理中