inflearn logo
강의

Course

Instructor

Building a Voting Community Platform with React & FastAPI: From Development to Monetization with a Payment System!

# 7-1. FastAPI Initial Setup

백엔드 도커 실행 에러가 뜹니다 ㅠ

Resolved

143

doit12

6 asked

0

에러 로그는 아래와 같아요
File "<frozen importlib._bootstrap_external>", line 999, in exec_module

 

File "<frozen importlib._bootstrap>", line 488, in callwith_frames_removed

 

File "/app/main.py", line 6, in <module>

 

from app.db.database import Base, async_engine

 

File "/app/app/db/database.py", line 1, in <module>

 

from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine

 

ModuleNotFoundError: No module named 'sqlalchemy'

 

WARNING: WatchFiles detected changes in 'app/db/crud/user.py'. Reloading...

 

Process SpawnProcess-2:

 

Traceback (most recent call last):

 

File "/usr/local/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap

 

self.run()

 

File "/usr/local/lib/python3.12/multiprocessing/process.py", line 108, in run

 

self._target(*self._args, **self._kwargs)

 

File "/usr/local/lib/python3.12/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started

 

target(sockets=sockets)

 

File "/usr/local/lib/python3.12/site-packages/uvicorn/server.py", line 67, in run

 

return asyncio.run(self.serve(sockets=sockets))

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

File "/usr/local/lib/python3.12/asyncio/runners.py", line 195, in run

 

return runner.run(main)

 

^^^^^^^^^^^^^^^^

 

File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run

 

return self._loop.run_until_complete(task)

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete

 

File "/usr/local/lib/python3.12/site-packages/uvicorn/server.py", line 71, in serve

 

await self._serve(sockets)

 

File "/usr/local/lib/python3.12/site-packages/uvicorn/server.py", line 78, in _serve

 

config.load()

 

File "/usr/local/lib/python3.12/site-packages/uvicorn/config.py", line 436, in load

 

self.loaded_app = import_from_string(self.app)

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

File "/usr/local/lib/python3.12/site-packages/uvicorn/importer.py", line 22, in import_from_string

 

raise exc from None

 

File "/usr/local/lib/python3.12/site-packages/uvicorn/importer.py", line 19, in import_from_string

 

module = importlib.import_module(module_str)

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module

 

return bootstrap.gcd_import(name[level:], package, level)

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

File "<frozen importlib._bootstrap>", line 1387, in gcdimport

 

File "<frozen importlib._bootstrap>", line 1360, in findand_load

 

File "<frozen importlib._bootstrap>", line 1331, in findand_load_unlocked

 

File "<frozen importlib._bootstrap>", line 935, in loadunlocked

 

File "<frozen importlib._bootstrap_external>", line 999, in exec_module

 

File "<frozen importlib._bootstrap>", line 488, in callwith_frames_removed

 

File "/app/main.py", line 6, in <module>

 

from app.db.database import Base, async_engine

 

File "/app/app/db/database.py", line 1, in <module>

 

from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine

 

ModuleNotFoundError: No module named 'sqlalchemy'

 

 

위 에러 때문인지 코드에서 아래 에러? 도 뜨네요

image.png

 

uvicorn main:app --reload도 당연 에러 뜨구요..

어떤 부분을 확인하면 될까요? ㅠ

 

react mysql docker rest-api FastAPI

Answer 2

0

doit12

삭제된 글입니다

0

dakgangjung123

안녕하세요. 보내주신 깃허브 링크에 현재 접속 할 수 없습니다. 다시 한번 링크를 확인해주실 수 있으실까요? 감사합니다!

0

doit12

public 으로 변경했는데 접근 되실까요???

0

doit12

혹시 어떻게 됐을까요?

0

dakgangjung123

안녕하세요. 답변이 늦어서 죄송합니다. 질문글은 메일로 알람이 오는데 대댓글은 따로 알람이 없네요ㅠ

올려주신 github 주소 그대로 다운로드 후 docker 빌드한 결과 수강생분과 동일한 오류는 발견할 수 없었습니다.

123.png

문제가 발생한 패키지 'sqlalchemy'가 제대로 설치된 이미지

image.pngimage.png

Docker 백엔드 컨테이너에서도 큰 문제를 발견하지 못했습니다.

번거로우시겠지만, docker-compose.yml 파일이 있는 경로에서 CMD를 열고 아래 명령어를 실행한 뒤, 다시 빌드하여 확인 부탁드립니다.

docker-compose down --volumes --rmi all

docker-compose up --build 

또한, 추가 문의가 있으신 경우 인프런 대댓글 대신 dakgangjung122@gmail.com으로 메일을 주시면 바로 피드백 드릴 수 있습니다. 감사합니다!

0

doit12

메일로 문의 드렸는데

백앤드가 실행이 안되네요...ㅠ

잘 되신다니 제 쪽에 뭔가 문제가 있는 것 같은데...

docker-compose down --volumes --rmi all

docker-compose up --build

위 명령어 수행 후, 백앤드 로그에 아래와 같이 뜨네요

exec /entrypoint.sh: no such file or directory

제가 gpt 물어보며 해야겠네요 ㅠ

0

dakgangjung123

안녕하세요. 질문 주셔서 감사합니다!

오류 메세지 마지막 부분에서ModuleNotFoundError: No module named 'sqlalchemy' 라는 문구가 있습니다. 말 그대로 Docker 컨테이너 내부에 sqlalchemy 패키지가 설치되어 있지 않아서 FastAPI가 실행되지 못하는 상황입니다.


해결방법

TalkAndVote Notion 사이트

Notion 챕터 7-1 FastAPI 초기 설정 토글을 여시면 필요한 코드를 확인하실 수 있습니다.

cd .\backend\
.\venv\Scripts\activate
pip install alembic sqlalchemy pymysql asyncmy cryptography passlib 
pip freeze > requirements.txt
alembic init alembic

Python 가상환경을 생성 후 필요한 패키지를 설치한 후에 해당 패키지 목록들을 requirements.txt로 추출하는 초기 설정 명령어입니다.

Docker 컨테이너를 설치할 시에는, 이 requirements.txt 파일을 빌드 과정에서 컨테이너 내부로 복사하고, pip install -r requirements.txt 명령어로 모든 패키지를 설치해야 합니다. 이렇게 하면 로컬 환경과 컨테이너 환경이 동일한 패키지 구성을 가지게 되어, ModuleNotFoundError와 같은 패키지 누락 문제를 예방할 수 있습니다.

따라서, 챕터 7-1 노션 코드를 천천히 다시 따라 해 보시되, 문제가 지속적으로 발생할 경우 Dockerfile 및 프로젝트 소스코드를 깃허브에 업로드 후 공유해 주시면 좀 더 수월하게 문제를 해결할 수 있을 것 같습니다. 감사합니다!

0

doit12

처음 에러가 떴었을 때에도 강의 들으면서 알려주신 부분 커맨드로 실행은 했었거든요?

오늘 저녁에 집가서 말씀하신대로 깃허브에 올려서 다시 댓글 달겠습니다

감사합니다

명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이

0

4

1

max x5 플랜을 결제했습니다.

0

6

1

Docker + Spring Boot CI/CD 방법

0

4

1

클로드 초기 설정

0

6

1

사용자 스코프 설정 파일 적용 문제

0

7

1

클로드코드 유료플랜 할인 방법이 있을까요?

0

21

0

docker compose에 대해 질문드립니다.

0

13

1

API Error : 400 에러의 원인과 해결방법이 궁금합니다!!

0

16

2

퍼미션 권한 설정 문의

0

19

2

패키지 구분에 대해 궁금한게 있습니다

0

11

1

순위가 동률일 때의 처리에 대해 질문드립니다.

0

15

2

커서에서 shift+enter가 안됩니다.

0

20

2

mcp 설치를 못하겠어요

0

35

2

추가 강의 업로드 계획은 어떻게 되시나요?

0

90

2

verify_token 함수의 네이밍에 대한 질문입니다

0

69

2

6-2 강의 노션 코드 오타인거죠? 2

0

87

3

[강의 오류 리포트] React Router Outlet 사용 오류

0

79

1

[강의 오류 제보] Navbar 컴포넌트 코드 오류 발견

0

78

2

데모사이트 접속이 안됩니다.

0

54

1

membership부분은 몇 강의에서 진행하신건가요?

0

59

1

Github repository는 없나요?

0

89

1

6-2 강의 노션 코드 오타인거죠?

0

79

1

섹션2 퀴즈 정답 이상함..( Docker 핵심구성요소가 아닌 것)

0

77

1

Navbar.jsx 메뉴 바 제작 (2부) 강의 MobileToggleButton.jsx 코드가 다른 것 같아요

0

87

1