numpyとscipyは米カリフォルニア大のを利用する必要がある

  • 概要

    ここでの話題は、hmPythonの話ではなく、「python for windows」全般の話となります。

    前節では、numpyをPytnon Package Index より探してインストールしましたが、
    python3系以降、「python for windows」のnumpyとscipyの組み合わせは、
    scipyが、pip等による通常のインストールでは成功しない状態となっています。

    「numpy」と「scipy」については、「両方」を「米カリフォルニア大」のサイトに上がっているものを利用するのが、
    2017年現在のところ、最も有力な解決策
    となっています。
    (通常のnumpyと関数やメソッドは同一ですが、IntelのMKLライブラリが利用されている部分が異なります)

    ここ3年程度は、この方法が最も有力な解決方法と位置付けられています。

  • Python for Windowsで、本当に使える「numpy」の場所

    http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy からダウンロードしてください。

    「numpy‑1.13.3+mkl‑cp36‑cp36m‑win32.whl」をダウンロードしてください。
    (hmPython3 64bit版の人は、「numpy‑1.13.3+mkl‑cp36‑cp36m‑win_amd64.whl」をダウンロードしてください。)

    この「mkl」の部分が、Python Package Indexで配布されているものとは異なっています。

  • PythonDev.batのバッチファイルが用意されている

    hmPython3には秀丸フォルダのサブディレクトリの「HmPython3」フォルダ内に、
    「PythonDev.bat」が用意されており、これを利用することで、
    「パスが通っていないPythonに一時的にパスを通し、少し楽にコマンドを打つことが出来るようになっています」

  • 直接「pip.exe」を使うのではなく、python -m経由で使う必要あり

    他の正規インストールをしたPythonが存在すると、「pip」コマンドを直接使うと、
    そちらのPythonへとインストールされてしまいます。

    これを避けるには、以下のように「python -m」を先頭につけて、
    どのPythonへとインストールするのかを明示するコマンドを入力しましょう。

    • 通常の秀丸エディタの場合

      PythonDev.bat実行の中でのコマンド
      python -m pip install numpy‑1.13.3+mkl‑cp36‑cp36m‑win32.whl
              
    • 秀丸エディタ 64bit版 を特別に使ってる人の場合

      PythonDev.bat実行の中でのコマンド
      python -m pip install numpy‑1.13.3+mkl‑cp36‑cp36m‑win_amd64.whl
              
  • Python for Windowsで、本当に使える「scipy」の場所

    scipyも同様となります。

    http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy からダウンロードしてください。

    「scipy‑0.19.1‑cp36‑cp36m‑win32.whl」をダウンロードしてください。
    (hmPython3 64bit版の人は、「scipy‑0.19.1‑cp36‑cp36m‑win_amd64.whl」をダウンロードしてください。)

    同様にhmPython3付属のpythonへとインストールしましょう。

    • 通常の秀丸エディタの場合

      PythonDev.bat実行の中でのコマンド
      python -m pip install scipy‑0.19.1‑cp36‑cp36m‑win32.whl
              
    • 秀丸エディタ 64bit版 を特別に使ってる人の場合

      PythonDev.bat実行の中でのコマンド
      python -m pip install scipy‑0.19.1‑cp36‑cp36m‑win_amd64.whl
              

    このscipyは、先述のnumpyの「mkl」の部分に依存しています。
    (Python Package Indexで配布しているnumpyとの組み合わせでは動作しないということです)