Planet Python на русском
Подписаться
Робин Уилсон: Как исправить странную проблему с pandas и pyarrow в BirdNetPi
BirdNetPi — это система на базе Raspberry Pi, использующая машинное обучение для идентификации звуков птиц, улавливаемых микрофоном. Она имеет веб-интерфейс для отображения классификаций и записей птиц. Изначально автор столкнулся с проблемами отсутствия графиков и сообщением "Connecting…" на странице статистики видов. Многие скрипты визуализации в среде Python завершались с ошибкой "Illegal instruction". Эта низкоуровневая ошибка указывала на проблему с пакетом, содержащим нативные расширения C/C++. После устранения неполадок с pandas автор использовал инструменты измерения времени импорта Python для выявления проблемного пакета. Импорт pyarrow, интерфейса Python для формата файлов arrow, непосредственно предшествовал сбою. Считалось, что pyarrow является необязательной зависимостью pandas. Прямой импорт pyarrow в интерпретаторе Python BirdNet подтвердил, что именно он вызывал сбои. Поиск в репозитории BirdNetPi на git не выявил использования pyarrow. Поэтому автор полностью удалил pyarrow. Это действие устранило все ранее возникшие проблемы без каких-либо негативных последствий для функциональности BirdNetPi.