身の回りに Python 関係の話が増えてきた。 個人的に常微分方程式関係がどうなっているか知りたくなったので (常微分方程式の数値シミュレーションの相場が変わったような気がしたので)、 久しぶりに調査する気になった。
以前 Python をやってみようと思い立って色々プログラムを書いたのは… あれ、以前の学科にいた時だっけ。調べたら9年も前だった (その後、Python 2→ Python 3 の移行を試したけれど、 そのときは以前のプログラムを動くように直せて満足して、 また眠ってしまった)。 うわっ、これは浦島太郎になっていても仕方がないか。
この前やったときは、Python 2 と Python 3 どちらにしようかとか迷ったけれど (3にしようかと思ったら、Fenics の方の事情で2にしたんだっけ。 よく覚えていない。)、 流石にもう Python 3 一択ですね。
Jupyter を使うのに Anaconda からやった方が良いかとも思ったけれど、 Anaconda の最新バージョンは 3.8 で、 それは M1 にネイティブに対応していないのか。 うーん。どうしよう。 別に機械学習しようというわけでないし…
Jupyter notebook のみインストールすることも可能だそうなので、 今回はまずは Anaconda なしでやってみよう。
sudo port install py-jupyter |
jupyter-3.9 notebook |
ちなみに Julia の REPL で
using Pkg Pkg.add("IJulia") Pkg.add("PyPlot") Pkg.update() using PyPlot |
とある1台のMacでは、 using PyPlot をした後に、次のようなエラーが発生した。
julia> using PyPlot INTEL MKL ERROR: dlopen(/Users/mk/.julia/conda/3/lib/libmkl_intel_thread.1.dylib, 9): Library not loaded: @rpath/libiomp5.dylib Referenced from: /Users/mk/.julia/conda/3/lib/libmkl_intel_thread.1.dylib Reason: image not found. Intel MKL FATAL ERROR: Cannot load libmkl_intel_thread.1.dylib. |
% $HOME/.julia/conda/3/bin/conda install mkl==2019.4 |
sudo port select --set ipython py39-ipython sudo port select --set ipython3 py39-ipython sudo port select --set python python39 sudo port select --set python3 python39 sudo port select --set cython cython39 |
ちなみに port select python とすると、選択肢が表示される。
% port select python Available versions for python: none (active) python27-apple python38 python38-apple python39 %(macOS には Python 2.7, 3.8 が用意されているのか。 python 3系列が入ったのはいつからなんだろう。) |
この Mac には、 MacPorts の依存関係から、 いつの間にやら Python 3.8 とか Python 3.9 が入っていたわけだが、 Numpy, Scipy とかは入っていないみたい。もちろん使うわけだから、 そう指示しないと。
sudo port install py39-numpy |
sudo port install openblas +native |
続いて SciPy と Matplotlib.
sudo port install py39-scipy sudo port install py39-matplotlib |
py39-matplotlib has the following notes: The default backend is the interactive Mac OS X backend. Different backends can be specified using the ~/.matplotlib/matplotlibrc file. More details regarding backends can be found in the matplotlib FAQ: https://matplotlib.org/tutorials/introductory/usage.html#backends tcl has the following notes: The Sqlite3 Tcl package is now being provided by the sqlite3-tcl port: sudo port install sqlite3-tcl |
一応通って動いているみたい。
Jupyter メモ
まとめ (工事中)
Python を使えるようにするには色々なやり方があるわけだが、
自分のように MacPorts でやるには、例えば次のような手順。
sudo port -N install openblas +native sudo port -N install py39-numpy +openblas sudo port -N install py39-scipy +openblas sudo port -N install py39-matplotlib sudo port -N install py39-ipython sudo port -N install py39-jupyter sudo port -N install pandoc sudo port select --set python python39 sudo port select --set python3 python39 sudo port select --set ipython py39-ipython sudo port select --set ipython3 py39-ipython sudo port select --set cython cython39 sudo port select --set pygments py39-pygments |
(2021/12/26追記) 「Python 3.10が来た」に続く。