WindowsでPythonプログラミング環境整備（Jupyter notebookの利用）

# はじめに
普段はMacで色々な設計計算を行っているのですが，会社支給のWin機でも同じことをできるようにしておかないと何かと不都合なので，Macと同じPython+Jupyter notebookの環境をWin機に導入することにしました．

実は，当初はめんどうなのでオールインワンで OK ということで Anaconda3 を入れていたのですが，Mac で問題なく動く Python スクリプトが Win 機上の Anaconda では原因不明および意味不明のエラーが出て動かない，という不都合に見舞われたため，Anaconda を捨て，Mac 同様に素直に Python と pip で環境を整備することにした次第です．


Win機の概要

+ Windows 7 Professional
+ Intel Core i7-6600U CPU 2.60GHz
+ Memory 8GB

## （雑感）
この Win 機も仕様だけ見るとすごそうですが，Core i5 2.6GHz,メモリ8GB の Macbook pro (Retina) のほうが画面は綺麗だし断然パフォーマンスはいいです．

Jupyter notebookの束（ファイル）はDropbox経由でMacからWin機にコピーしています．

Windowsの不便なところは，コマンドプロンプトが使いづらいところか．MacではJupyter上でわざわざプログラムを書かなくてもシェルスクリプトで処理できることはやっていたのですが，Win機上ではコマンドプロンプトを動かそうにもやり方が分からず，Python側のsubprocess.callに命令を突っ込んで処理しています．

ちなみに，先般，Anaconda で動かなかった Python スクリプトはというと，新しい環境では全く問題なく動いています．あれはいったい何だったんだろう．．．

それでは，本題に．


# Python3.7のインストール
下記の記事を参考に実施しました．

Pythonのインストール方法[Windows]
[https://qiita.com/R-Imai/items/18fee5203e695838e899](https://qiita.com/R-Imai/items/18fee5203e695838e899)

ただし，ダウンロード画面そのままだと 32bit 版のインストーラがダウンロードされてしまうので，64bit 版の人は注意が必要です．<em>Looking for Python with a different OS? Python for Windows</em> のボタンから移動して <em>Windows x86-64 web-based installer</em> をダウンロードし実行します．このときパスの追加を忘れずに！

![scr1.png](https://qiita-image-store.s3.amazonaws.com/0/129300/600466e4-31d6-92ed-d4cd-a666cea8cfdf.png)

![scr2.png](https://qiita-image-store.s3.amazonaws.com/0/129300/237d31cb-698f-1057-1b5c-e1e1e4bd2415.png)

# ライブラリのインストール
Python 本体が入ってしまえば，あとは pip で必要なものをインストールしていきます．gcc あるいは gfortran が入っていないと scipy がインストールできない？？？というような情報を昔見たことがあるような気がしますが，未確認．私の場合，MinGW をインストールしてあるためか問題なくインストールを完了．
インストールしたものは以下のものたちです．Python のプログラミングは Jupyter notebook で行いたいため，これもインストール．ちなみにJupyter notebookとは一言で説明するとすれば何といえばいいのでしょうね？日本語だけ見るとpandasともダブりそうだし，私は Jupyter は設計業務で使っているのでデータ解析支援アプリというのもピンとこない...が思いつかないのでとりあえずそう書いておきます．

```
pip install numpy        数値計算用ライブラリ
pip install scipy        数値解析用ライブラリ
pip install matplotlib   グラフ作成ライブラリ
pip install pillow       画像処理ライブラリ
pip install pandas       データ解析支援ライブラリ
pip install xlrd         エクセルデータ読込用ライブラリ
pip install sympy        記号計算用ライブラリ
pip install jupyter      データ解析支援アプリ？？？
```

# Jupyter notebookの準備
## やりたいこと

+ フォントは Ricty Diminish にする（12pt，行間120%）
+ ブラウザは Firefox を使用
+ テーマは黒系で monokai を使用

## フォントの変更
以下のサイトを参考にRicty Diminishをインストール．

見やすいプログラミング用フォント「Ricty Diminished」をWindowsにインストールしてSublime Textで利用する方法 
[https://nelog.jp/how-to-use-ricty-diminished-font](https://nelog.jp/how-to-use-ricty-diminished-font)

フォントの変更は，<em>C:\Users\xxx\.jupyter\custom\custom.css</em> を直接いじって実行しました．やることは，

+ font-family の monospace を全て Ricty Diminish に書き換える．
+ フォントを Ricty に変更した箇所の font-size を 12pt に，line-height を全て 120% に書き換える（デフォルトは 170% ）

## テーマの変更
テーマの変更は以下の記事を参考に実施しました．

Jupyter Notebookの背景色やフォントをかっこよく変更する（Jupyterテーマ変更）
[https://qiita.com/uratatsu/items/cdc83308ce85a32d0512](https://qiita.com/uratatsu/items/cdc83308ce85a32d0512)

私の場合monokaiを選択．なお上記サイトで紹介されている以下の <em>-f Ricty Diminished</em> が効かなかったので，フォントの変更は上述の通り，直接 custom.css を編集しました．

```
$ jt -t onedork -f Ricty Diminished -T -N
```

私は，テーマ変更の際，セル幅を 1200px に変更しています．画面幅がもったいないと感じる人は自分の画面に合わせて変えることをお薦めします．コマンドは以下の通り．

```
jt -t monokai -cellw 1200 -N -T
```

なお，テーマの変更を行うと，custom.css がデフォルトに戻ってしまうので，フォントの変更は最後に行うか，変更した custom.css のコピーを作っておき，テーマ変更後に差し替えるようにすると無駄がないと思います．

## ブラウザの指定
ブラウザの指定は以下の記事を参考に実施しました．

Windows環境でのJupyter Notebookのブラウザ指定
[https://qiita.com/acknpop/items/4e5b57e38780068a9155](https://qiita.com/acknpop/items/4e5b57e38780068a9155)

以下を実行すると，<em>C:\Users\xxx\.jupyter\jupyter_notebook_config.py</em> というのができます．

```
jupyter notebook --generate-config
```

初期状態の <em>jupyter_notebook_config.py</em> は，全てコメントアウトされているので，私は以下のように，ファイルの頭に３行を挿入しました．


```py:
import webbrowser
webbrowser.register('firefox', None, webbrowser.GenericBrowser('C:\\Program Files\\Mozilla Firefox\\firefox.exe'))
c.NotebookApp.browser = 'firefox'

# *** ここから下は元ファイルの内容 ***
# Configuration file for jupyter-notebook.

#------------------------------------------------------------------------------
# Application(SingletonConfigurable) configuration
#------------------------------------------------------------------------------

## This is an application.

## The date format used by logging formatters for %(asctime)s
#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S'

......
```

## 仕上がり
以上により出来上がった Jupyter notebook のスクリーンショットを示します．なんだかすごいことができそうな予感？？？

![scr3.png](https://qiita-image-store.s3.amazonaws.com/0/129300/4240404a-62c1-34b1-4b67-07f730809c0c.png)

![scr4.png](https://qiita-image-store.s3.amazonaws.com/0/129300/a6c9eb57-f4bc-3f68-2c34-858b98ca11b9.png)


ちなみに私のMacのJupyterは[こんな感じ](https://qiita.com/damyarou/items/5c319f5def57c6e36a37)です．


以　上