Windows環境にPython 3.5.1+numpy+scipy+αをインストール

  • 48
    いいね
  • 5
    コメント
この記事は最終更新日から1年以上が経過しています。

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のインストール

  1. https://www.python.org/ にアクセス
  2. [Downloads/Windows/Python 3.5.1]を選択し[python-3.5.1.exe]をダウンロード
  3. [python-3.5.1.exe]を実行
  4. 最初の画面で[Add Python 3.5 to PATH]にチェックを入れて、[Install Now]をクリック
  5. コマンドプロンプトから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での通常インストール(失敗)

pipを用いたnumpy,scipyの通常インストール
python -m pip install numpy
python -m pip install scipy

ログを見た感じだとnumpy, scipyのインストール処理はそれぞれ以下の様になっているようです。

numpy
環境に数値演算ライブラリがインストールされているかどうかを確認
 インストールされている
  インストールされている数値演算ライブラリと関連付けてnumpyをインストール
 インストールされていない
  Visual Studio等のコンパイラがインストールされているかどうかを確認
   インストールされている
    コンパイラを用いて数値演算ライブラリのバイナリを生成し、生成したバイナリと関連付けてnumpyをインストール
   インストールされていない
    インストール失敗
scipy
環境に数値演算ライブラリがインストールされているかどうかを確認
 インストールされている
  インストールされている数値演算ライブラリと関連付けて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インストール(成功)

最終的にこの方法でインストールしました。

  1. http://www.lfd.uci.edu/~gohlke/pythonlibs/ にアクセス
  2. 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ファイルを選択しています。
  3. pipを使ってインストール
コンパイル済みバイナリが同封された.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

この方法で、インストールおよびサンプルスクリプトの実行に成功しました。

補足

以下の組み合わせでインストールを行った場合、インストールには成功するのですが、スクリプト実行時にエラーが出ました。

コンパイル済みバイナリが同封された.whlファイルを用いたpipインストール
python -m pip install numpy
python -m pip install C:\Users\ktanaka\Downloads\scipy-0.17.0-cp35-none-win32.whl
実行したPythonスクリプト
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エディタのパッケージで選択行実行が出来るパッケージ知っている方がいたら教えてもらえると幸いです(..)_

参考にしたサイト

整理中