본문 바로가기

개발하자

FastAPI: "ImportError: 알려진 상위 패키지가 없는 상대 가져오기 시도"

반응형

FastAPI: "ImportError: 알려진 상위 패키지가 없는 상대 가져오기 시도"

나는 패스트가 처음이다API와 다른 파일을 가져오는 데 문제가 있었습니다.

오류가 발생했습니다:‍‍‍‍

from . import schemas
ImportError: attempted relative import with no known parent package

컨텍스트의 경우, 내가 가져오는 파일은 블로그라는 폴더입니다. 나는 StackOverflow가 내가 글을 쓰는 대신에 써야 한다고 말하는 것을 보았다. 그리고 그들의 솔루션이 올바르고 파이썬 프로그램을 실행하는 동안 오류가 발생하지 않지만, 내가 uvicorn을 사용하여 FastAPI를 실행하려고 하면 이 오류가 발생하고 나의 localhost 페이지가 로드되지 않는다.

  File "./main.py", line 2, in <module>
from Blog import schemas
ModuleNotFoundError: No module named 'Blog'

파일 구조는 다음과 같습니다:

메인 파일의 코드는 다음과 같습니다:

from fastapi import FastAPI
from Blog import schemas, models
from database import engine

app = FastAPI()

models.Base.metadata.create_all(engine)


@app.post('/blog')
def create(request: schemas.Blog):
    return request

도식적인 계획.파이의

from pydantic import BaseModel


class Blog(BaseModel):
    title: str
    body: str

데이터베이스를 작성.파이의

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

SQLALCHAMY_DATABASE_URL = 'sqlite:///./blog.db'

engine = create_engine(SQLALCHAMY_DATABASE_URL, connect_args={"check_same_thread": False})

SessionLocal = sessionmaker(bind=engine, autocommit=False, autoflush=False)

Base = declarative_base()

models.py

from sqlalchemy import *
from database import Base


class Blog(Base):
    __tablename__ = 'blogs'
    id = Column(Integer, primary_key=True, index=True)
    title = Column(String)
    body = Column(String)

스웨거UI도 로드되지 않습니다.

어떤 도움이라도 주시면 대단히 감사하겠습니다! :)




및 파일이 파일로 에 있으므로 다음과 같이 두 모듈을 가져와야 합니다:

import schemas, models

자세한 내용과 예제는 및 을 참조하십시오.




안녕하세요, 저는 이 방법을 도왔습니다 (점 없이):

from models import User
## instead of 
# from .models import User



위의 폴더에서 앱을 실행할 수도 있습니다. 예를 들어, 만약 당신이 uvicorn을 사용한다면, 당신은 할 수 있다

uvicorn folder.app:main --reload

대신에

uvicorn app:main --reload

그러면 점을 유지할 수 있습니다.


반응형