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