ImportError: не удается импортировать имя ‘stacked_violin’ из ‘scanpy.plotting._anndata’?

#python #scanpy

#python #scanpy

Вопрос:

Еще пару дней назад мой код, использующий библиотеку 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. Вот почему полагаться на имена подчеркивания рискованно 🙂

Ответ №1:

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

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

не удается импортировать имя ‘stacked_violin’ из ‘scanpy.plotting._anndata’

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

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

Комментарии:

1. Также здорово, что вы проявили инициативу по созданию проблемы на Github. Не стесняйтесь обновлять здесь, как только вы получите решение там.

2. Да, я присмотрелся к новой кодовой базе и обнаружил ошибку, надеюсь, они скоро обновят ее. Тем временем я вернулся к предыдущей версии, спасибо за вашу помощь!