1. kenichi-t

    Posted

    kenichi-t
Changes in title
+Windows環境にPython 3.5.1+numpy+scipy+αをインストール
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,200 @@
+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が起動できることを確認
+
+```shell-session:
+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をアップグレード
+
+```shell-session:
+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>
+```
+
+以降の説明では、
+
+```shell-session:
+C:\Users\ktanaka>python -m pip install --upgrade pip
+```
+
+の様なコマンドプロンプトからの実行は
+
+```shell-session:
+python -m pip install --upgrade pip
+```
+
+と表記し、ログも省略します。
+python -mで始まる表記があったら、コマンドプロンプトからの実行を意味しています。
+
+# wheelパッケージのインストール
+バイナリを含んだ.whlファイルをpipでインストールする為の仕組み・・・とどこかで読んだ気がする
+
+```shell-session:
+python -m pip install wheel
+```
+
+# numpy, scipyのインストールに関して
+numpyやscipyは内部で数値演算ライブラリを呼び出しています。よって数値演算ライブラリのバイナリとnumpy, scipyが関連付けられる必要があります。今回はいろいろと試したのですが、scipyのインストールで苦労しました。scipyがnumpyと関連づいているらしいので、numpyのインストールも含めて自分の環境における失敗事例と共に説明します。
+
+## pipでの通常インストール(失敗)
+
+```shell-session:pipを用いたnumpy,scipyの通常インストール
+python -m pip install numpy
+python -m pip install scipy
+```
+
+ログを見た感じだとnumpy, scipyのインストール処理はそれぞれ以下の様になっているようです。
+
+```text:numpy
+環境に数値演算ライブラリがインストールされているかどうかを確認
+ インストールされている
+  インストールされている数値演算ライブラリと関連付けてnumpyをインストール
+ インストールされていない
+  Visual Studio等のコンパイラがインストールされているかどうかを確認
+   インストールされている
+    コンパイラを用いて数値演算ライブラリのバイナリを生成し、生成したバイナリと関連付けてnumpyをインストール
+   インストールされていない
+    インストール失敗
+```
+
+
+```text: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をダウンロード<br>
+※Python 3.5.1 なので xxxcp35xxx.whlを選択しています。<br>
+※numpyはmkl(Intel Math Kernel Library)が付属した.whlファイルを選択しています。
+3. pipを使ってインストール
+
+```shell-session:コンパイル済みバイナリが同封された.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
+```
+
+この方法で、インストールおよびサンプルスクリプトの実行に成功しました。
+
+##補足
+以下の組み合わせでインストールを行った場合、インストールには成功するのですが、スクリプト実行時にエラーが出ました。
+
+```shell-session:コンパイル済みバイナリが同封された.whlファイルを用いたpipインストール
+python -m pip install numpy
+python -m pip install C:\Users\ktanaka\Downloads\scipy-0.17.0-cp35-none-win32.whl
+```
+
+```py:実行したPythonスクリプト
+from scipy import stats
+```
+
+```text:エラーの内容
+・・・
+ 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を使ってインストールを行う事で成功しました。
+
+```text
+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)
+
+```shell-session:
+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エディタのパッケージで選択行実行が出来るパッケージ知っている方がいたら教えてもらえると幸いです_(._.)_
+
+#参考にしたサイト
+整理中