嗨,我是新来的,所以对我的语言感到抱歉,这可能会导致不准确。 我正在使用安装了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模块之外,其他所有方法都运行良好。
有人知道我在这里做错了吗?
答案 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
测试导入是否有效。