Masato's IT Library

Microsoftの製品・サービスを中心に,色々と書いていきたいと思います

WindowsにPython3系とnumpy・scipyをインストールする方法(2/3 ライブラリ編)

WindowsPython 3系統(記事作成時点で3.6.1が最新)と,データ分析等でよく使用するnumpyやscipyといったライブラリをインストールする方法,そして,Visual Studioとの連携の仕方などをまとめました.

本記事は第2回 Pythonライブラリのインストール編です.

pipのアップデート

第1回のPython実行環境のインストールに続いて,各種ライブラリのインストールを行います.
その前に,Pythonのパッケージマネージャ(Linuxでいうaptやyumのようなもの)のアップデートを行っておきます.

  1. 管理者コマンドプロンプトもしくは管理者PowerShellを開きます.
    Windows 8以降の場合は,タスクバーのWindowsボタンを右クリック(もしくはWindowsキー+Xキー)でWin+Xメニューを開き,「コマンドプロンプト(管理者)」もしくは「Windows PowerShell(管理者)」をクリックしてください.
    f:id:mst8000:20170412232425p:plain:w300 f:id:mst8000:20170412232818p:plain:w300
    Windows 7では,スタートメニューの[アクセサリ]から[コマンドプロンプト]を右クリックして[管理者として実行]してください.

  2. 次のコマンドラインを入力して実行します.
    python -m pip install --upgrade pip

  3. pipのより新しいバージョンが存在する場合はダウンロードと更新が実施され,最新のバージョンがインストールされている場合はその旨が出力されます.(Web Installerを使用した場合は最新版がインストールされているはずです)

PS C:\WINDOWS\system32> python -m pip install --upgrade pip
Requirement already up-to-date: pip in c:\program files\python36\lib\site-packages

NumPyのインストール

数値計算ライブラリNumPyのインストールを行います.

Numpyは大規模な多次元配列や行列を扱い,これらを高速に操作するための関数が含まれている,非常によく使用されるライブラリです.
が,ソースからインストールを行うとなると,どのプラットフォームにおいても,Intel数値計算ライブラリ*1コンパイラの準備が必要となります.そこで,事前にIntel数値計算ライブラリを使用してビルドされたライブラリパッケージをインストールすることで,簡単に高速実行できるNumPyをインストールできます.

wheelのインストール

事前にビルドされたライブラリパッケージ(wheel形式)をpipを用いてインストールするためのツールをインストールします.

  1. (管理者)コマンドプロンプトPowerShellを起動します.

  2. 次のコマンドラインを実行します.
    python -m pip install wheel

  3. インストールが完了したことを確認します.

PS C:\WINDOWS\system32> python -m pip install wheel
Collecting wheel
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |████████████████████████████████| 71kB 487kB/s
Installing collected packages: wheel
Successfully installed wheel-0.29.0

NumPyのダウンロード

続いて,NumPyのパッケージをダウンロードします.

  1. 米カリフォルニア大の http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy にアクセスします.

  2. numpy‑1.12.1+mkl‑cp36‑cp36m‑win_amd64.whl をダウンロードします.
    Python 3.6.X (x64)なので,cp36amd64を選択します)
    f:id:mst8000:20170413004507p:plain:w500

以下,各ファイルのダウンロード先は “D:\PythonInstaller” とします.

NumPyのインストール

NumPyのインストールを行います.

  1. (管理者)コマンドプロンプトPowerShellで次のコマンドを実行します.
    python -m pip install D:\PythonInstaller\numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl

  2. インストールが完了したことを確認します.

PS C:\WINDOWS\system32> python -m pip install D:\PythonInstaller\numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl
Processing d:\pythoninstaller\numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl
Installing collected packages: numpy
Successfully installed numpy-1.12.1+mkl

SciPyのインストール

次に,SciPyのインストールを行います.

SciPyは,Pythonで高度な科学技術計算ができるようにするための,数学・科学技術計算関数を詰め合わせライブラリです.
NumPyと同様に事前にビルドされたライブラリパッケージをダウンロードしてインストールします.

  1. http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipyにアクセスします.

  2. scipy‑0.19.0‑cp36‑cp36m‑win_amd64.whl をダウンロードします.
    Python 3.6.X (x64)なので,cp36amd64を選択します)

  3. (管理者)コマンドプロンプトPowerShellで次のコマンドを実行します.
    python -m pip install D:\PythonInstaller\scipy-0.19.0-cp36-cp36m-win_amd64.whl

  4. インストールが完了したことを確認します.

PS C:\WINDOWS\system32> python -m pip install D:\PythonInstaller\scipy-0.19.0-cp36-cp36m-win_amd64.whl
Processing d:\pythoninstaller\scipy-0.19.0-cp36-cp36m-win_amd64.whl
Requirement already satisfied: numpy>=1.8.2 in c:\program files\python36\lib\site-packages (from scipy==0.19.0)
Installing collected packages: scipy
Successfully installed scipy-0.19.0

scikit-learnのインストール

scikit-learnのインストールを行います.

scikit-learnは,NumPyとSciPyを用いて機械学習を行うライブラリで,様々な分類・回帰・クラスタリングアルゴリズムが含まれています.
NumPyと同様に事前にビルドされたライブラリパッケージをダウンロードしてインストールします.

  1. http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learnにアクセスします.

  2. scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl をダウンロードします.
    Python 3.6.X (x64)なので,cp36amd64を選択します)

  3. (管理者)コマンドプロンプトPowerShellで次のコマンドを実行します.
    python -m pip install D:\PythonInstaller\scikit_learn-0.18.1-cp36-cp36m-win_amd64.whl

  4. インストールが完了したことを確認します.

PS C:\WINDOWS\system32> python -m pip install D:\PythonInstaller\scikit_learn-0.18.1-cp36-cp36m-win_amd64.whl
Processing d:\pythoninstaller\scikit_learn-0.18.1-cp36-cp36m-win_amd64.whl
Installing collected packages: scikit-learn
Successfully installed scikit-learn-0.18.1

matplotlibのインストール

PythonMATLABのようなグラフを出力するためのライブラリです.
pipを用いてインストールします.

  1. (管理者)コマンドプロンプトPowerShellで次のコマンドを実行します.
    python -m pip install matplotlib

  2. インストールが完了したことを確認します.

PS C:\WINDOWS\system32> python -m pip install matplotlib
Collecting matplotlib
  Downloading matplotlib-2.0.0-cp36-cp36m-win_amd64.whl (9.0MB)
    100% |████████████████████████████████| 9.0MB 118kB/s
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=1.5.6 (from matplotlib)
  Downloading pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 4.7MB/s
Requirement already satisfied: numpy>=1.7.1 in c:\program files\python36\lib\site-packages (from matplotlib)
Collecting python-dateutil (from matplotlib)
  Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
    100% |████████████████████████████████| 194kB 3.7MB/s
Collecting six>=1.10 (from matplotlib)
  Downloading six-1.10.0-py2.py3-none-any.whl
Collecting cycler>=0.10 (from matplotlib)
  Downloading cycler-0.10.0-py2.py3-none-any.whl
Collecting pytz (from matplotlib)
  Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
    100% |████████████████████████████████| 491kB 2.0MB/s
Installing collected packages: pyparsing, six, python-dateutil, cycler, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.0.0 pyparsing-2.2.0 python-dateutil-2.6.0 pytz-2017.2 six-1.10.0

以上で各種主要ライブラリのインストールが完了しました.
pipでインストール可能なライブラリはscikit-learnやmatplotlibと同様の手順でインストールすることが出来ます.

次回はVisual Studioとの連携についてまとていきたいと思います.

*1:入手に会員登録が必要

WindowsにPython3系とnumpy・scipyをインストールする方法(1/3 Pythonインストール編)

WindowsPython 3系統(記事作成時点で3.6.1が最新)と,データ分析等でよく使用するnumpyやscipyといったライブラリをインストールする方法,そして,Visual Studioとの連携の仕方などをまとめました.

本記事はPythonのダウンロード~インストール編です.

インストール先の環境

Windows 10(x64) Creators Update (Version 1703)にインストールを行います.
これ以前のWindows(7, 8.1, 10)でも方法は同じのはずです.

インストールするPythonのバージョン

CPython 3.6.1 (x64)

最も一般的に用いられるPythonの実装であるCPythonを用います

インストールしたPythonライブラリ

  • wheel
  • numpy
  • scipy
  • matplotlib
  • scikit-learn

Pythonのダウンロード

  1. https://www.python.org/downloads/windows/ にアクセスします.

  2. インストールするバージョン(ここでは,最新の3.6.1を選択します)の
    Windows x86-64 web-based installer
    をダウンロードします.

Pythonのインストール

  1. ダウンロードした [python-3.6.1-amd64-webinstall.exe] を実行します.

  2. Add Python 3.6 to PATH にチェックを入れ, Customize installation をクリックします.
    f:id:mst8000:20170412002157p:plain:w450

  3. pip にチェックが入っていることを確認して,Next をクリックします.
    [Documentation]等の他の項目の選択は任意です.
    f:id:mst8000:20170412002433p:plain:w450

  4. Install for all UsersAdd Python to environment variablesPrecompile standard library にチェックを入れ, Install をクリックします.
    f:id:mst8000:20170412003049p:plain:w450

  5. インストールが始まります.
    f:id:mst8000:20170412003552p:plain:w450

  6. インストールが完了しました.Close をクリックして終了します.
    f:id:mst8000:20170412004430p:plain:w450

Pythonがインストールされたことの確認

Pythonが正常にインストールされていることを確認します.
コマンドプロンプトを起動し(PowerShellでもOK),Pythonの対話実行環境が起動できることを確認します.
確認出来たら,exit()を実行してPythonを終了してください.

Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. All rights reserved.

D:\>python
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

D:\>

次回は各種ライブラリのインストールを行います.

Windows Server 2016のインストールメディアの分割方法

はじめに

Windows StoreやVisual Studio Subscription(旧 MSDNサブスクリプション)で配布されるWindowsのインストールメディア(isoファイル)は最近ではUSBフラッシュメモリを用いてインストールを行うことが想定されているためか,DVD1枚に収まる容量(4.7GB)を超えるサイズのものが存在します.

(参考)Windows Server 2016 : 5621MB

しかしながら,世の中にはまだまだUSBフラッシュメモリからのブートが不可能なマザーボードも存在し,USBフラッシュメモリからのブートができたとしても,FAT32しか認識できない(4GB以上のファイルが格納できない)などといったケースが少なからずあります.

そこで,ここでは,Windowsインストールメディアに含まれる最大サイズのファイルであるinstall.wimを任意のサイズに分割して,複数のより小さなisoファイルを作成する方法を説明します

※注意
Windows 8/8.1,Windows Server 2012/2012R2では,以下の方法で作成した分割メディアはインストーラの不具合により使用できないそうです.
Windows 10以降では問題なく用いることができます.

分割メディアの作成手順

Windows ADKをインストールする

イメージファイルを編集するためのツールを導入するため,作業用のマシンに最新のWindows ADK(Windows Assessment and Deployment Kit)を下のリンク先からダウンロードし,インストールします.

Windows ADK のダウンロード - Windows ハードウェア デベロッパー センター

  1. ダウンロードしたadksetup.exeを実行し,
    「このコンピュータに Windowsアセスメント & デプロイメントキットをインストールします:を選択して続行します.
    f:id:mst8000:20170107133533p:plain:w400

  2. CEIPの選択画面ではどちらか好きな方を選んで続行してください.

  3. インストールする機能を選択する画面では「Deployment Tools」のみを選択してインストールを開始します.
    f:id:mst8000:20170107153155p:plain:w400
    f:id:mst8000:20170107153252p:plain:w400

  4. ADKのインストール作業が完了しました.
    f:id:mst8000:20170107153450p:plain:w400

install.wimを分割する

それでは,ADKを用いてinstall.wimを分割していきます.
(注)以降,F:\Windowsのインストールメディアのisoをマウントしているとします.

  1. スタートメニューから,「Windows Kits」→「展開及びイメージング ツール環境」を管理者権限で実行します

  2. 次のコマンドラインを実行してinstall.wimを分割したファイルを作成します.
    Dism /Split-Image /ImageFile:F:\sources\install.wim /SWMFile:D:\temp\install.swm /FileSize:3072

/ImageFileは分割元のファイル,/SWMFileは分割したファイルの保存先ファイル名,/FileSizeは分割サイズ(MB) を表しています.

分割されたファイルはinstall.swm, install2.swm...といったように連番が自動的にファイルにつけられます.

swmファイルと必要なファイルの配置

  1. 作業フォルダに分割された数だけDVD1, DVD2というフォルダを作成し,各フォルダ内にsourcesフォルダを作成します.

  2. 分割されたswmファイルを各sourcesフォルダに一つずつ移動します.

  3. (DVD1のみ
    起動ディスクとなるDVD1のみ,
    F:\からF:\sources\install.wim以外のファイルを全てDVD1フォルダにコピーします.

インストールメディア(isoファイル)を作成する

  1. (DVD1のみ
    次のコマンドラインを実行してインストールメディアを作成します
    oscdimg -m -o -u2 -udfver102 -b"F:\boot\etfsboot.com" D:\temp\DVD1 D:\temp\DVD1.iso

  2. (DVD1以外
    次のコマンドラインを実行してインストールメディアを作成します(フォルダ名等は適宜変更)
    oscdimg -m -o D:\temp\DVD2 D:\temp\DVD2.iso

※上記方法はBIOSブートのみ対応です.UEFIは調べて追記予定)

以上で,分割されたインストールメディアが完成しました.

インストールを実行する

出来上がったisoファイルは,Windowsディスクイメージ書き込みツール等でDVD・CDに書き込むか,USBメモリに書き込みます.

f:id:mst8000:20161226203905p:plain:w300

mstn.hateblo.jp

インストールディスクが出来上がったら,DVD1を用いてインストールを開始することができます.
インストール作業中に次のディスクに入れ替えるよう指示されるので,次のディスクを入れてOKをクリックしてください.

blog.engineer-memo.com

Windows イメージ (.swm) ファイルを複数の DVD にまたがるように分割する

Windows Updateによる自動再起動を阻止する方法(Vista以降全バージョン対応)

はじめに

月次もしくは臨時のWindows Updateでは,コンピュータの再起動が求められることが多いですよね.

そんな時,おそらく誰もが経験したことがある(?)のが,

「実行中の処理があるため今再起動されると困る」

「放っておいたら文書が保存されずに再起動していた」
(こまめに上書き保存しましょう)

ということ.

しかしながら,自動更新やWindows Update自体を停止してしまうことは, 脆弱性や攻撃からの保護の観点から,好ましいものではありません.

(こちらはサービスごと止めちゃうタイプ)

forest.watch.impress.co.jp

そこで,今回はユーザが「サインイン(ログオン)しているときのみ」自動で再起動が行われることを防ぐ方法をお伝えします.

なお,今回の手順を行うとユーザがサインインしている限り自動で再起動は行われなくなりますが,
安全性のためにも 出来るだけ早く手動で再起動するようにしましょう!!

今回行う手法では,Windows Updateサービスの停止やレジストリの直接的な変更を行うのではなく, 企業等においてコンピュータの動作を制御するために用いられる「ポリシー」(グループポリシー)を変更します.
そのため,変更を誤ってもコンピュータが起動しなくなるなどの問題が発生することはなく,変更を元に戻す際にも副作用等が発生することがありません.

Windows 10からのアップデート仕様の変更

Windows 10からは,脆弱性の対処をより迅速に行うために,これまでのWindowsと異なり, Windows Updateの自動更新を設定からOFFにすることはできなくなりました.
また,自動更新適用後の再起動に関しても,あらかじめ設定した「アクティブ時間」以外では自動で再起動が行われるようになりました.(Pro以上のみ)

f:id:mst8000:20161208193504p:plain:w400

なお,今回の手順を適用することで,Windows 10でも同様に自動再起動が行われないようにすることができます. (Windows 10 Pro Anniversary Update (Version 1607)で確認)

適用手順

では,実際に設定を変更していきます.
以降の作業はすべてWindows 10 Pro Version 1607(Anniverssary Update)で行っていますが, 全てのWindowsでほぼ同じ作業手順となっています.(ただし全てPro相当以上のエディションのみ

また,以降では,管理者によって管理されていない通常のコンピュータにおける手順を示しています. Active Directory配下の場合は管理者が適切なGPOを編集することで適用することができます.

ローカルポリシーエディタを開く

コマンドプロンプトもしくは「ファイル名を指定して実行」ダイアログにgpedit.mscと入力して 「ローカルグループポリシーエディター」を開きます.
(Cortanaに「ローカルグループポリシー」と入力しても開くことができます.)

f:id:mst8000:20161208191101p:plain:w400

f:id:mst8000:20161208191220p:plain:w500

ポリシーを編集する

  1. ローカルグループポリシーエディターの左ペインで
    「コンピューターの構成」→「管理用テンプレート」→「Windowsコンポーネント」→「Windows Update
    と辿ります.
    f:id:mst8000:20161208194124p:plain:w600

  2. ポリシーによるWindows Updateの制御を有効にします.
    右ペインの「自動更新を構成する」をダブルクリックして設定ダイアログを開きます.
    f:id:mst8000:20161208194327p:plain:w600

  3. ①「有効」を選択し,
    ②「5 - ローカルの管理者の設定選択を許可」をドロップダウンから選択します.
    ③最後に「OK」を押してダイアログを閉じてください f:id:mst8000:20161208194605p:plain:w600

  4. 次に,ユーザがサインインしている状態での自動再起動を抑止します.
    ローカルグループポリシーエディターの右ペインで「スケジュールされた自動更新のインストールで、ログオンしているユーザーがいる場合には自動的に再起動しない」をダブルクリックして開きます.
    f:id:mst8000:20161208195357p:plain:w600

  5. 「有効」を選択してから「OK」を選択してダイアログを閉じます.
    f:id:mst8000:20161208195549p:plain:w600

以上でポリシーの編集は完了です. f:id:mst8000:20161208195644p:plain:w600

ローカルポリシーの適用

ポリシーを編集しても,すぐに設定は反映されません.
コンピュータを再起動するか,次のコマンドを管理者コマンドプロンプトから実行して, ポリシーを適用してください.

gpupdate /force

f:id:mst8000:20161208184454p:plain:w400

おわりに

以上で,ユーザがサインインしている間のWindows Updateによる自動再起動をブロックすることができるようになりました.

なお,頭でも述べましたが,脆弱性対策,安全性のためにも,
出来るだけ早く手動で再起動するようにしましょう!!