物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

WindowsでPython 3をインストールする方法

Anacondaは商用利用は有償になったので、Python 公式からダウンロードすることを推奨する。

Pythonをインストール

Ubuntu (WSL2)

$ sudo apt -y update
$ sudo apt -y upgrade
$ sudo apt -y install python3-pip

PATHを通す $ pico ~/.bashrc~/.bashrcに以下を追加

alias python="python3"
alias pip="pip3"
export PATH="/home/physics/.local/bin:$PATH"

~/.bashrcを読み込み

$ source ~/.bashrc

これでpipでpip3が呼べるし、pythonでpython3が呼べる。

Windows

x64版

以下、私のインストール設定

Customize installationへ

pip と tcl/tk and IDLE をインストール

すべてのチェックを外す

PythonのPATHを通す。インストール直後だとフォルダは作成されてないこともあるが、次の3つのPATHを環境変数に加える。

Python 3.8の場合

%LOCALAPPDATA%\Programs\Python\Python38
%LOCALAPPDATA%\Programs\Python\Python38\Scripts
%APPDATA%\Python\Python38\Scripts

Python 3.7の場合

%LOCALAPPDATA%\Programs\Python\Python37
%LOCALAPPDATA%\Programs\Python\Python37\Scripts
%APPDATA%\Python\Python37\Scripts

最新のWindows 10だと、PythonのMicrosoft StoreへのPathが既に設定されていることがあるので、以下のPathの優先順位を下げる。

%USERPROFILE%\AppData\Local\Microsoft\WindowsApps

各パッケージのインストール

数学系

pip install numpy scipy

sympy

pip install simpy

jupyter

pip install jupyter jupyterlab jupyterlab_launcher

画像処理

pip install opencv-python

グラフ描画ツール

pip install matplotlib

Jupyter Labなどでインタラクティブな描画をするためのパッケージ

pip install ipympl

岐阜大の乾板解析で必要なパッケージ

pip install affine6p uncertainties

ディープラーニング関連

pip install tensorflow tensorflow-gpu keras 

yamlを読み取る

pip install pyyaml

Awkward Arrayを使う

version 1系 の最終版

pip install awkward==1.10.5

version 2系。1系と互換性はない

pip install awkward

PyTorchをインストール

$ pip install torch torchvision torchaudio

最新のNVIDIAドライバ をインストールすると、WSLでもCUDAが使える。

>>> import torch
>>> torch.cuda.is_available()
True

日本語フォント

そのままだとmatplotlibで日本語フォントが使えず、いわゆる豆腐現象が起きてしまうため、下記の手順で導入する。

Ubuntu

  • sudo apt install fonts-noto-cjk でゴシック体をインストールする。
  • ~/.config/matplotlib/matplotlibrcfont.family : Noto Sans CJK JP とだけ書いて保存。
  • ~/.cache/matplotlibrm -rで削除する。
  • jupyterを立ち上げ直す。

Windows

  • https://moji.or.jp/ipafont/ipaex00401/ (文字情報技術促進協議会) または https://forest.watch.impress.co.jp/library/software/ipaexfont/ (窓の杜)からIPAexフォント(IPAexフォント 明朝とゴシック)をダウンロードする。
  • それぞれ ipaexg.ttf ipaexm.ttf をダブルクリックしてインストールする。
  • %userprofile%\.matplotlib というフォルダ(なければ%userprofile%に行って作成)で matplotlibrc というファイルを作成する。
  • font.family : IPAexGothic とだけ書いて保存。
  • .matplotlib 内のtex.cacheフォルダと fontlist-*.json を削除する。
  • jupyterを立ち上げ直す。

Jupyter

Python用に開発された、ウェブブラウザでPythonを実行、グラフ表示等ができる、統合開発環境である。筆者はjupyter labを使っている。

Jupyter 関連の投稿一覧

Jupyter カテゴリーの記事一覧 - 物理の駅 Physics station by 現役研究者

extension

nodejsを入れよと言われることがあるのでインストールする

nodejs.org

起動時のエラーの例

[W 2022-08-17 13:27:14.706 LabApp] Could not determine jupyterlab build status without nodejs

nodejs(node.exe)を入れたあと

[I 2022-08-17 13:36:21.912 LabApp] Build is up to date

jupyter上でメモリ使用率などを表示させるには、extensionからjupyter-resource-usageをインストール

Windowsでipynbをjupyter labで開く 方法

%LOCALAPPDATA%\Programs\Python\Python38\Scripts
または
%LOCALAPPDATA%\Programs\Python\Python37\Scripts

以下に、jupyter-lab.exeがあるので、このファイルを開く方法を選ぶの一番下、これを開くから選ぶ。

Jupyterのバージョン確認

>jupyter --version
Selected Jupyter core packages...
IPython          : 8.4.0
ipykernel        : 6.15.1
ipywidgets       : 7.7.1
jupyter_client   : 7.3.4
jupyter_core     : 4.11.1
jupyter_server   : 1.18.1
jupyterlab       : 3.4.5
nbclient         : 0.6.6
nbconvert        : 6.5.3
nbformat         : 5.4.0
notebook         : 6.4.12
qtconsole        : 5.3.1
traitlets        : 5.3.0

jupyter labの拡張機能(extension)のリスト(バージョン)を表示する

>jupyter labextension list
JupyterLab v3.4.5
c:\users\masahiro\appdata\local\programs\python\python38\share\jupyter\labextensions
        jupyterlab_pygments v0.2.2 enabled ok (python, jupyterlab_pygments)
        @jupyter-widgets/jupyterlab-manager v3.1.1 enabled ok (python, jupyterlab_widgets)

Other labextensions (built into JupyterLab)
   app dir: C:\Users\Masahiro\AppData\Local\Programs\Python\Python38\share\jupyter\lab
        @jupyter-server/resource-usage v0.6.3 enabled ok

jupyter labの拡張機能(extension)をアップデートする

jupyter labextension update --all

PIP関連

PIPは、Python用のパッケージのインストールプログラムである。通常、パッケージはpipを使ってインストールする。

Ubuntu(WSL2)へインストール

aptで入れる

sudo apt install python3-pip

パッケージを入れる方法は3つあって、同じライブラリがある場合の優先順位は以下の通り。

  1. pip install
  2. sudo pip install
  3. sudo apt install

3→2 の順で入れると入らない。

2→3 の順で入れると入るが2が優先される。

3→1、2→1 の順で入れると入って、1が優先される。

インストール先のパス /usr/lib/python3/dist-packages /usr/local/lib/python3.6/dist-packages /home/hoge/.local/lib/python3.6/site-packages/

Windowsへインストール

Anacondaを使えない環境ではパッケージ管理ソフトであるPIPは必須である。Pythonをインストールするときにインストールされるので、通常この操作を行う必要はない。インストール解説は This page has moved - pip documentation v24.0 にある。

まずは、get-pip.pyをダウンロードして、

bitsadmin.exe /TRANSFER download https://bootstrap.pypa.io/get-pip.py %cd%\get-pip.py

Pythonで実行する

python get-pip.py

その後、

where pip

でPATHが見えれば完了

PIPコマンド

インストール済みのパッケージ一覧

pip list

アンインストール

pip uninstall アンインストールしたいパッケージ

アップデートの確認 アップデート可能なパッケージ一覧を表示

pip list -o
または
pip list --outdated

Package    Version Latest Type
---------- ------- ------ -----
matplotlib 3.3.3   3.5.3  wheel
mistune    0.8.4   2.0.4  wheel
pip        21.1.1  22.2.2 wheel
pyarrow    8.0.0   9.0.0  wheel
setuptools 56.0.0  65.0.2 wheel
uproot     4.1.8   4.3.4  wheel

記録したバージョン一覧 requirements.txt から復元・インストール

pip install -r requirements.txt
または
pip install --requirement requirements.txt

バージョン一覧 requirements.txt の作成・書き出し方法

pip freeze > requirements.txt

パッケージ (例:matplotlib) のバージョンを最新版にする(アップグレード/アップデート)

pip install -U matplotlib
または
pip install --upgrade matplotlib

PIP自体のアップグレードもできる。

pip install -U pip
または
pip install --upgrade pip

特定のバージョンをインストールする

pip install ipywidgets==7.7.0

仮想環境を作る

Pythonが単一の バージョンの場合は比較的容易に仮想環境を作れる。

仮想環境: Python環境構築ガイド - python.jp

python -m venv .venv
.venv\Scripts\activate.bat

REM 終了
deactivate

Ubuntu(WSL2)では別途パッケージが必要

apt install python3.10-venv

過去に発生したエラー(備忘録)

pip でパッケージをインストールするとき、--user をつけると ユーザーフォルダに保存されるが、一部のプログラムでは --user にないことを前提としてコードが書かれてるので、特にこだわりがなければ --user なしで良いだろう。

例えば、jupyter をインストールするときに--user オプションをつけると、Printしようとするとできなかったり、 Export Notebook As で項目が出てこないことがある。--user は必要ない。 検索用のエラーメッセージは以下の通り。

"Jupyter Notebook requires JavaScript. 
Please enable it to proceed."
      value = obj._trait_values[self.name]
    KeyError: 'template_paths'

Windowsにおける--userの意味を調べてみる。--userをつけないでインストールすると、

%LOCALAPPDATA%\Programs\Python\Python38\Lib\site-packages

へパッケージは保存される。一方、--userをつけると

%APPDATA%\Python\Python38\Lib\site-packages

へ保存される。Roamingの方はドメインに参加しているときに、ユーザーのローカルデータを同期される。Localの方のデータは同期されない。スタンドアローンのPC(皆さんのラップトップPC)で実行している時は気にしなくても良いし、付けても付けなくても現実問題変わらない。VSCodeでPythonのパッケージをインストールするとお節介にも--userを付けてくれる。

上記の事情から、Pythonをアンインストールする時は、プログラムのアンインストールをした後、下記の両方を削除するように。

%LOCALAPPDATA%\Programs\Python\Python38
%APPDATA%\Python\Python38

数学系のPythonパッケージ numpyで、1.19.4にバグがあったので、1.19.3を入れるべしと書いていたが(2020/10/02)、最新版は問題なさそうにみえる (2022/08/24)

https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html

Python環境を移植や同期する方法

Pythonの環境を別のPCと同期したり移植したりしたいことがあるだろう。Dockerは知らん。

pythonのバージョン確認

python -v

パッケージを移植する

移植元

pip install -r requirements.txt

移植先

pip install -r requirements.txt