nappy から pmd を呼び出してMDを実行する次のコードがある.

nsys = nappy.io.read('pmdini')   # 構造ファイルを読み込む
pmd = nappy.pmd.PMD(nsys)        # pmdオブジェクト作製
pmd.load_inpmd()          # pmd実行の設定ファイルを読み込む
pmd.run(nstp=1000, dt=-5.0, ifdmp=2, iprint=0)   # pmd実行
nsys = pmd.get_system()          # 結果取得
print(' Potential energy = ',nsys.get_potential_energy())  # 出力
print(' Kinetic energy = ',nsys.get_kinetic_energy())
print(' Stress = ',nsys.get_stress())

これを jupyter notebook 上で実行しようとすると,次のようなエラーが出てkernelが再起動する.

Error

The kernel for /path/to/notebook.ipynb appears to have died. It will restart automatically.

このコードはpython scriptとして実行すると,問題なく実行できるため,jupyter notebookでのみ止まってしまう.

その前のセルなどでいくつかimportしているパッケージを調べてみると,import seaborn の有無で上記エラーとなるかどうかが変わる. 理由はわからないが,とりあえずseabornをimportしなければ問題なく走るのでよしとする.バージョンを新しくすれば解決するかもしれないが,他のバージョンは調べていない.

  • python 3.9.15
  • jupyter-lab 4.0.10
  • seaborn 0.12.1

追記

import seabornしていなくても似たような現象が発生した(今度はエラーは出ないがプロセスは止まってしまう現象).今度はseabornではなく,import matplotlib を消したら実行できるようになった. これは seaborn とか matplotlib とかではなく,nappyの方が問題な気がしはじめた.