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

时间:2020-03-07 15:03:48

标签: conda failed-installation scanpy

嗨,我是新来的,所以对我的语言感到抱歉,这可能会导致不准确。 我正在使用安装了scanpy的conda环境。但是,当我导入模块scanpy._compat时,它将返回导入错误:

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模块之外,其他所有方法都运行良好。

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

1 个答案:

答案 0 :(得分:1)

_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测试导入是否有效。