0

嗨,我是新来的,很抱歉我的语言可能会导致不准确。我正在使用安装 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 模块外,一切都运行良好。

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

4

1 回答 1

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

于 2020-05-28T19:15:59.503 回答