【Windows】Windows Server 2016で動いていたPytestがWindows10で動かない

はじめに

こんにちは、SHOJIです。

Windows Server 2016で動いていたPytestがWindows10で動かなかったときの対応です。 今後、この二つの環境で何かを作ることはなさそうですが、トラブルの原因と解決方法は出来る限り残しておけという教えを受けているので残します。

ImportError: DLL load failed

Pytest実行時、Windows10環境で発生したエラーがこちらです。 (以前に発生したエラー画像から手打ちしているのでだいぶ短く抜粋してます)

from numba.core.typeconv import _typeconv
ImportError: DLL load failed

Numba モジュールが上手く読み込めていないようです。 いくつかのキーワードで検索すると、NumbaのIssueに同事象の報告が挙がっていました。

github.com

こちらはWindows7で発生したようですが、おそらく同じ原因でしょう。 会話を追っていくとNumbaのバージョンによって動く場合と動かない場合があるとの報告があります。

バージョンが0.47.0 や 0.48.0 であれば動くようですが、残念ながら僕の環境は他のライブラリとの兼ね合いで0.48.0に下げることはできない状態でした。

そのため、他のライブラリに影響しない最低バージョンに落としてから順番にバージョンアップをしていったところ、0.51.2のバージョンでエラーが解消されました。

おわりに

Numbaの今現在のGithubのスターが7.4k、オープンなIssueが1.3k、やっぱり有名ライブラリはすごいですね。 これだけの支持を受けて開発するのって想像できないほどのプレッシャーだと思うのですが、中の人たちがどのようにプレッシャーと折り合いをつけて開発を進めているのか気になります。

まあでも、OSSかそうでないかが違うだけで、ユーザ数の多いサービスの開発チームにはどこも相当プレッシャーかかってるから、そのあたりの対処の仕方は同じなのかな。不具合は仕組みで抑えるようにして、責任はチームで負って、なるべく個人の負荷を緩和するような体制でやっているんでしょうね。