ImportError: cannot import name 'stacked_violin' from 'scanpy.plotting._anndata'?

ImportError: cannot import name 'stacked_violin' from '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(如果有的话)。我错过了最近几天的变化吗?感谢您的帮助!

这绝对是模块中的一个错误,它似乎源于您必须升级到的最新版本。

如其所述的错误

cannot import name 'stacked_violin' from 'scanpy.plotting._anndata'

这是真的,因为这个 _anndata.py it refers to does not contains that method. It is in fact in another file called stack_violin.py. See here 用于那个函数。

要修复它,您可以简单地采用覆盖库的困难方法,以便该方法存在于文件中 _anndata.py 或者您可以简单地恢复到早期版本。除非确实需要,否则也不需要经常更新库,并且在提升版本时经常会出现这种错误。