해결된 질문
작성
·
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'
위 에러 때문인지 코드에서 아래 에러? 도 뜨네요
uvicorn main:app --reload도 당연 에러 뜨구요..
어떤 부분을 확인하면 될까요? ㅠ
답변 2
0
안녕하세요. 답변이 늦어서 죄송합니다. 질문글은 메일로 알람이 오는데 대댓글은 따로 알람이 없네요ㅠ
올려주신 github 주소 그대로 다운로드 후 docker 빌드한 결과 수강생분과 동일한 오류는 발견할 수 없었습니다.
문제가 발생한 패키지 'sqlalchemy'가 제대로 설치된 이미지
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가 실행되지 못하는 상황입니다.
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 및 프로젝트 소스코드를 깃허브에 업로드 후 공유해 주시면 좀 더 수월하게 문제를 해결할 수 있을 것 같습니다. 감사합니다!
안녕하세요. 보내주신 깃허브 링크에 현재 접속 할 수 없습니다. 다시 한번 링크를 확인해주실 수 있으실까요? 감사합니다!