Inflearn brand logo image

인프런 커뮤니티 질문&답변

하하호호님의 프로필 이미지
하하호호

작성한 질문수

React & FastAPI로 만드는 투표 커뮤니티 플랫폼: 결제 시스템으로 수익화까지!

7-1. FastAPI 초기 설정

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

해결된 질문

작성

·

53

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도 당연 에러 뜨구요..

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

 

답변 2

0

하하호호님의 프로필 이미지
하하호호
질문자

https://github.com/p68523/talkAndvote.git

git 주소 입니다! 도저히 안되네요 ㅠ

도커 실행 시, 에러가 계속 발생하네요

 

닭강정님의 프로필 이미지
닭강정
지식공유자

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

하하호호님의 프로필 이미지
하하호호
질문자

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

하하호호님의 프로필 이미지
하하호호
질문자

혹시 어떻게 됐을까요?

닭강정님의 프로필 이미지
닭강정
지식공유자

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

올려주신 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으로 메일을 주시면 바로 피드백 드릴 수 있습니다. 감사합니다!

하하호호님의 프로필 이미지
하하호호
질문자

메일로 문의 드렸는데

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

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

docker-compose down --volumes --rmi all

docker-compose up --build

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

exec /entrypoint.sh: no such file or directory

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

0

닭강정님의 프로필 이미지
닭강정
지식공유자

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

오류 메세지 마지막 부분에서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 및 프로젝트 소스코드를 깃허브에 업로드 후 공유해 주시면 좀 더 수월하게 문제를 해결할 수 있을 것 같습니다. 감사합니다!

하하호호님의 프로필 이미지
하하호호
질문자

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

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

감사합니다

하하호호님의 프로필 이미지
하하호호

작성한 질문수

질문하기