scverse / scvi-tools

Deep probabilistic analysis of single-cell and spatial omics data
http://scvi-tools.org/
BSD 3-Clause "New" or "Revised" License
1.23k stars 346 forks source link

ImportError: cannot import name 'Doc' from 'typing_extensions' #2312

Closed jheonsuh closed 8 months ago

jheonsuh commented 11 months ago

Hi, everyone

I am a beginner to python and i'm trying to follow single cell rna seq. tutorials with scanpy.

Then, i came across an error as follows. After installing scvi-tools, Import scvi did not work... showing importError

Any advises would be sincerely thankful..

My entire code

!pip install scanpy import scanpy as sc

adata = sc.read_csv('GSM5226574_C51ctr_raw_counts.csv.gz').T

!pip install scvi-tools !pip install typing-extensions --upgrade import scvi

-->

ImportError Traceback (most recent call last) Cell In[12], line 1 ----> 1 import scvi

File ~\miniconda3\Lib\site-packages\scvi__init__.py:8 5 import warnings 7 from ._constants import METRIC_KEYS, REGISTRY_KEYS ----> 8 from ._settings import settings 10 # this import needs to come after prior imports to prevent circular import 11 from . import autotune, data, model, external, utils, criticism

File ~\miniconda3\Lib\site-packages\scvi_settings.py:8 5 from typing import Literal, Optional, Union 7 import torch ----> 8 from lightning.pytorch import seed_everything 9 from rich.console import Console 10 from rich.logging import RichHandler

File ~\miniconda3\Lib\site-packages\lightning__init.py:17 15 from lightning.about import * # noqa: E402, F401, F403 16 from lightning.version import version as version__ # noqa: E402, F401 ---> 17 from lightning.app import storage # noqa: E402 18 from lightning.app.core.app import LightningApp # noqa: E402 19 from lightning.app.core.flow import LightningFlow # noqa: E402

File ~\miniconda3\Lib\site-packages\lightning\app__init__.py:24 20 _logger.addHandler(_console) 21 _logger.propagate = False ---> 24 from lightning.app import components # noqa: E402, F401 26 if os.path.isfile(os.path.join(os.path.dirname(file), "about.py")): 27 from lightning.app.about import * # noqa: F403

File ~\miniconda3\Lib\site-packages\lightning\app\components__init__.py:1 ----> 1 from lightning.app.components.database.client import DatabaseClient 2 from lightning.app.components.database.server import Database 3 from lightning.app.components.multi_node import ( 4 FabricMultiNode, 5 LightningTrainerMultiNode, 6 MultiNode, 7 PyTorchSpawnMultiNode, 8 )

File ~\miniconda3\Lib\site-packages\lightning\app\components\database__init.py:1 ----> 1 from lightning.app.components.database.client import DatabaseClient 2 from lightning.app.components.database.server import Database 4 all__ = ["Database", "DatabaseClient"]

File ~\miniconda3\Lib\site-packages\lightning\app\components\database\client.py:22 19 from requests.adapters import HTTPAdapter 20 from urllib3.util.retry import Retry ---> 22 from lightning.app.components.database.utilities import _GeneralModel 24 _CONNECTION_RETRY_TOTAL = 5 25 _CONNECTION_RETRY_BACKOFF_FACTOR = 1

File ~\miniconda3\Lib\site-packages\lightning\app\components\database\utilities.py:20 17 import pathlib 18 from typing import Any, Dict, Generic, List, Type, TypeVar ---> 20 from fastapi import Response, status 21 from fastapi.encoders import jsonable_encoder 22 from lightning_utilities.core.imports import RequirementCache

File ~\miniconda3\Lib\site-packages\fastapi__init.py:7 3 version__ = "0.104.1" 5 from starlette import status as status ----> 7 from .applications import FastAPI as FastAPI 8 from .background import BackgroundTasks as BackgroundTasks 9 from .datastructures import UploadFile as UploadFile

File ~\miniconda3\Lib\site-packages\fastapi\applications.py:16 1 from enum import Enum 2 from typing import ( 3 Any, 4 Awaitable, (...) 13 Union, 14 ) ---> 16 from fastapi import routing 17 from fastapi.datastructures import Default, DefaultPlaceholder 18 from fastapi.exception_handlers import ( 19 http_exception_handler, 20 request_validation_exception_handler, 21 websocket_request_validation_exception_handler, 22 )

File ~\miniconda3\Lib\site-packages\fastapi\routing.py:22 7 from enum import Enum, IntEnum 8 from typing import ( 9 Any, 10 Callable, (...) 19 Union, 20 ) ---> 22 from fastapi import params 23 from fastapi._compat import ( 24 ModelField, 25 Undefined, (...) 29 lenient_issubclass, 30 ) 31 from fastapi.datastructures import Default, DefaultPlaceholder

File ~\miniconda3\Lib\site-packages\fastapi\params.py:5 2 from enum import Enum 3 from typing import Any, Callable, Dict, List, Optional, Sequence, Union ----> 5 from fastapi.openapi.models import Example 6 from pydantic.fields import FieldInfo 7 from typing_extensions import Annotated, deprecated

File ~\miniconda3\Lib\site-packages\fastapi\openapi\models.py:4 1 from enum import Enum 2 from typing import Any, Callable, Dict, Iterable, List, Optional, Set, Type, Union ----> 4 from fastapi._compat import ( 5 PYDANTIC_V2, 6 CoreSchema, 7 GetJsonSchemaHandler, 8 JsonSchemaValue, 9 _model_rebuild, 10 with_info_plain_validator_function, 11 ) 12 from fastapi.logger import logger 13 from pydantic import AnyUrl, BaseModel, Field

File ~\miniconda3\Lib\site-packages\fastapi_compat.py:20 4 from enum import Enum 5 from typing import ( 6 Any, 7 Callable, (...) 17 Union, 18 ) ---> 20 from fastapi.exceptions import RequestErrorModel 21 from fastapi.types import IncEx, ModelNameMap, UnionType 22 from pydantic import BaseModel, create_model

File ~\miniconda3\Lib\site-packages\fastapi\exceptions.py:6 4 from starlette.exceptions import HTTPException as StarletteHTTPException 5 from starlette.exceptions import WebSocketException as StarletteWebSocketException ----> 6 from typing_extensions import Annotated, Doc # type: ignore [attr-defined] 9 class HTTPException(StarletteHTTPException): 10 """ 11 An HTTP exception you can raise in your own code to show errors to the client. 12 (...) 34 ``` 35 """

ImportError: cannot import name 'Doc' from 'typing_extensions' (C:\Users\jhsuh\miniconda3\Lib\site-packages\typing_extensions.py)

Versions:

python3.11 , miniconda

Window OS Jupytor notebook with firefox.. typing_extensions-4.8.0.dist-info

martinkim0 commented 11 months ago

Hi, are you running this on Colab by chance? If so, please refer to #2302

panktigosar commented 11 months ago

I am facing the same issue. !pip uninstall -y typing_extensions before installing scvi_colab worked for typing_extensions but then I got a new error. This is the whole error that I got:

NameError Traceback (most recent call last) Cell In[10], line 1 ----> 1 import scvi

File ~/anaconda3/lib/python3.11/site-packages/scvi/init.py:8 5 import warnings 7 from ._constants import METRIC_KEYS, REGISTRY_KEYS ----> 8 from ._settings import settings 10 # this import needs to come after prior imports to prevent circular import 11 from . import autotune, data, model, external, utils, criticism

File ~/anaconda3/lib/python3.11/site-packages/scvi/_settings.py:7 4 from pathlib import Path 5 from typing import Literal, Optional, Union ----> 7 import torch 8 from lightning.pytorch import seed_everything 9 from rich.console import Console

File ~/anaconda3/lib/python3.11/site-packages/torch/init.py:465 451 raise ImportError(textwrap.dedent(''' 452 Failed to load PyTorch C extensions: 453 It appears that PyTorch has loaded the torch/_C folder (...) 461 or by running Python from a different directory. 462 ''').strip()) from None 463 raise # If file is not None the cause is unknown, so just re-raise. --> 465 for name in dir(C): 466 if name[0] != '' and not name.endswith('Base'): 467 all.append(name)

NameError: name '_C' is not defined

I am using macbook and Python 3.9.7

martinkim0 commented 11 months ago

What version of PyTorch do you have installed? Are you also using Cython?

martinkim0 commented 8 months ago

Closing due to inactivity