为什么导入 scanpy._compat 时出现错误?

Why I have an Error when importing scanpy._compat?

嗨,我是新来的,很抱歉我的语言可能会导致不准确。 我正在使用安装了 scanpy 的 conda 环境。但是,当我导入模块 scanpy._compat 时,它 returns 出现导入错误:

from scanpy._compat import Literal

ModuleNotFoundError: No module named 'scanpy._compat'

我尝试升级 scanpy: pip install --upgrade scanpy 并且我还按照 scanpy github (https://github.com/theislab/scanpy/blob/master/docs/installation.rst) 上的安装步骤创建了另一个 conda 环境。在最后两种情况下,除了导入 scanpy._compat 模块外,一切都运行良好。

有人知道我在这里做错了什么吗?

_compat.py 中,您会注意到提供了以下代码:

第一个:

try:
    from typing import Literal

例外情况:

except ImportError:
    try:
        from typing_extensions import Literal
    except ImportError:

        class LiteralMeta(type):
            def __getitem__(cls, values):
                if not isinstance(values, tuple):
                    values = (values,)
                return type('Literal_', (Literal,), dict(__args__=values))

        class Literal(metaclass=LiteralMeta):
            pass

因此,当您尝试 import Literal 时,您也可以通过 importing typing 并执行 typing.Literal(python 版本 >3.8 ) 无论你想将代码应用于什么情况。

但是问题提示scanpy根本无法导入。确保在安装环境后同时激活它:

$ conda info --envs 找出可用环境的名称 $ conda activate [relevant env name]激活相关conda环境。

然后再试一次代码:

$ python进入python解释器

> from scanpy._compat import Literal 测试导入是否有效。