ImportError: невозможно импортировать имя stacked_violin из scanpy.plotting._anndata?

Еще пару дней назад мой код, использующий библиотеку scanpy, работал нормально, но вчера вечером он сломался и выдал мне новую ошибку

Traceback (most recent call last):
  File "./scanpy_normalization.py", line 4, in <module>
    import scanpy.api as sc
  File "/usr/local/lib/python3.8/site-packages/scanpy/api/__init__.py", line 27, in <module>
    from . import pl
  File "/usr/local/lib/python3.8/site-packages/scanpy/api/pl.py", line 1, in <module>
    from ..plotting._anndata import scatter, violin, ranking, clustermap, stacked_violin, heatmap, dotplot, matrixplot, tracksplot
ImportError: cannot import name 'stacked_violin' from 'scanpy.plotting._anndata' (/usr/local/lib/python3.8/site-packages/scanpy/plotting/_anndata.py

Я импортирую scanpy как

import scanpy.api as sc

и я обновляюсь до последней версии scanpy (если есть) каждый раз, когда запускаю код. Были ли какие-то изменения за последние пару дней, которые я пропустил? Помощь приветствуется!

1 ответ

Решение

Это определенно ошибка в модуле, и похоже, что она проистекает из последней версии, до которой вы, должно быть, обновились.

Ошибка, как говорится

невозможно импортировать имя stacked_violin из scanpy.plotting._anndata

и это правда, поскольку этот _anndata.py, на который он ссылается, не содержит этого метода. На самом деле он находится в другом файле с именем stack_violin.py. См. Здесь для этой функции.

Чтобы исправить это, вы можете просто переписать библиотеку жестким способом, чтобы метод присутствовал в файле. _anndata.pyили вы можете просто вернуться к более ранней версии. Также нет необходимости часто обновлять библиотеку, если в этом нет реальной необходимости, и такая ошибка часто ожидается при повышении версий.

Другие вопросы по тегам