#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. Да, я присмотрелся к новой кодовой базе и обнаружил ошибку, надеюсь, они скоро обновят ее. Тем временем я вернулся к предыдущей версии, спасибо за вашу помощь!