Почему возникает ошибка при импорте scanpy._compat?

Привет, я здесь новенький, извините за мой язык, который может быть неточным. Я работаю со средой conda, в которой я установил scanpy. Однако, когда я импортирую модуль scanpy._compat, он возвращает ошибку импорта:

from scanpy._compat import Literal

ModuleNotFoundError: No module named 'scanpy._compat'

Я пробовал обновить scanpy:pip install --upgrade scanpyи я также создал другую среду conda, следуя инструкциям по установке, представленным на scanpy github (https://github.com/theislab/scanpy/blob/master/docs/installation.rst). В каждом из последних двух случаев все работает хорошо, кроме импорта модуля scanpy._compat.

Кто-нибудь знает, если я здесь что-то не так делаю?

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 чтобы проверить, работает ли импорт.

Другие вопросы по тегам