背景
Pythonのインストール後、Python3 -m ensurepip
を実行してpipのインストールを試みたが、Bus error:10
と表示され、プログラムが終了する。
エラー原因の調査
エラーがどこで起きたのかがわからないと原因の究明に至れないので、faulthandler を使ってエラー発生箇所を特定する。faulthandleはtracebackを明示的にダンプしてくれる関数である。
python3 -X faulthandler -m ensurepip --upgrade
これを実行すると、エラー内容が次のように表示された
Current thread 0x0000000104c1f880 (most recent call first): File "/usr/local/lib/python3.7/ctypes/__init__.py", line 273 in _reset_cache File "/usr/local/lib/python3.7/ctypes/__init__.py", line 543 in <module> ...省略 File "/usr/local/lib/python3.7/ensurepip/__init__.py", line 27 in _run_pip File "/usr/local/lib/python3.7/ensurepip/__init__.py", line 117 in _bootstrap File "/usr/local/lib/python3.7/ensurepip/__init__.py", line 204 in _main File "/usr/local/lib/python3.7/ensurepip/__main__.py", line 5 in <module> File "/usr/local/lib/python3.7/runpy.py", line 85 in _run_code File "/usr/local/lib/python3.7/runpy.py", line 193 in _run_module_as_main Bus error: 10
どうやらctypesをimport した時にエラーを吐くっぽい。実際に対話モードでimport ctypes
と明示的にctypes を入れてやると、Bus error
と表示されて異常終了した。
うーん
エラーの再現には成功した。しかし同様の事例があまりネットに転がっておらず、似たような事例の解決案を試してみてもbus error
は消えない。。。bus error
の原因がctypes だけとも限らないし、Python のバージョンを変更したら解決できるのだろうか。
明日(土曜)に色々試したい、って明日は休日出勤だった。。。(~_~);
コメント