Robin Wilson:如何解决 BirdNetPi 中 pandas 与 pyarrow 的怪异问题
BirdNetPi 是一个基于树莓派的系统,利用机器学习识别麦克风采集的鸟类声音。该系统具备用于展示鸟类分类和录音的 Web 界面。最初,作者在物种统计页面遇到了图表缺失和“正在连接…"提示的问题。Python 环境中的许多可视化脚本均因“非法指令”错误而崩溃。这一底层错误表明某个包含原生 C/C++ 扩展的包存在问题。在排查 pandas 之后,作者利用 Python 的导入时序工具定位到问题包。pyarrow(一种用于 Arrow 文件格式的 Python 接口)的导入紧接在崩溃之前发生。pyarrow 被认为是 pandas 的可选依赖项。在 BirdNet Python 解释器中直接导入 pyarrow 证实了其是导致崩溃的原因。对 BirdNetPi 代码库的搜索显示并未使用 pyarrow。因此,作者完全卸载了 pyarrow。此举解决了此前遇到的所有问题,且未对 BirdNetPi 的功能产生任何负面影响。