プログラミング

Python でpipを入れようとするとBus error が生じる。

背景

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 のバージョンを変更したら解決できるのだろうか。
明日(土曜)に色々試したい、って明日は休日出勤だった。。。(~_~);

コメント