Planet Python 日本語
フォロー
Robin Wilson: BirdNetPiにおける奇妙なpandasとpyarrowの問題を修正する方法
BirdNetPiは、マイクで捉えた鳥の鳴き声を機械学習で識別するRaspberry Piベースのシステムです。鳥の分類や録音を表示するためのWebインターフェースを備えています。当初、著者はSpecies Statsページでグラフが表示されない問題や「Connecting…」というメッセージが表示される問題に遭遇しました。Python環境内の多くの可視化スクリプトが「Illegal instruction」エラーでクラッシュしました。この低レベルのエラーは、ネイティブC/C++拡張を含むパッケージに問題があることを示唆していました。pandasのトラブルシューティングの後、著者はPythonのインポートタイミングツールを使用して問題のあるパッケージを特定しました。arrowファイルフォーマットのPythonインターフェースであるpyarrowのインポートが、クラッシュの直前に発生しました。pyarrowはpandasのオプションの依存関係であると考えられていました。BirdNetのPythonインタープリターでpyarrowを直接インポートしたところ、クラッシュの原因であることが確認されました。BirdNetPiのgitリポジトリを検索したところ、pyarrowの使用は見つかりませんでした。そのため、著者はpyarrowを完全にアンインストールしました。この操作により、BirdNetPiの機能に悪影響を与えることなく、以前遭遇したすべての問題が解決しました。