반응형
개요
어느날 개발서버에서 잘 작동하던 FastAPI에서 에러가 발생했다.
에러는 특정 라이브러리의 함수를 찾을 수 없다는 내용이다.
Traceback (most recent call last):
File "/home/mining/projects/finance_advisor/some_money/somemoney_api_server/scripts/../run.py", line 30, in <module>
from somemoney_api_server.security import user
File "/home/mining/projects/finance_advisor/some_money/somemoney_api_server/somemoney_api_server/security/user.py", line 17, in <module>
from fastapi import Depends, HTTPException, status
File "/home/mining/.conda/envs/some_money_api/lib/python3.8/site-packages/fastapi/__init__.py", line 7, in <module>
from .applications import FastAPI as FastAPI
File "/home/mining/.conda/envs/some_money_api/lib/python3.8/site-packages/fastapi/applications.py", line 15, in <module>
from fastapi import routing
File "/home/mining/.conda/envs/some_money_api/lib/python3.8/site-packages/fastapi/routing.py", line 21, in <module>
from fastapi import params
File "/home/mining/.conda/envs/some_money_api/lib/python3.8/site-packages/fastapi/params.py", line 4, in <module>
from pydantic.fields import FieldInfo, Undefined
ImportError: cannot import name 'Undefined' from 'pydantic.fields' (/home/mining/.local/lib/python3.8/site-packages/pydantic/fields.py)
문제 원인
개발서버와 운영서버의 pip 리스트를 출력하고, 환경을 비교해보니 pydantic 버전이 차이가 남을 확인할 수 있었다.
diff dev_pip.txt prod_pip.txt
[...]
< pydantic==2.6.4
< pydantic_core==2.16.3
---
> pydantic==1.8.2
[...]
원인을 점검해보니 다른 팀원이 base 환경에 설치한 패키지가 문제였다.
콘다는 가상환경 간 분리가 되지만, base 환경에 설치한 패키지들은 다른 가상환경에 모두 영향을 미친다고 한다.
이는 base 환경이 콘다의 기본 환경으로서 다른 가상환경들과 분리되지 않기 때문이라고 한다.
마찬가지로 특정 환경에서 base에 설치된 패키지를 삭제하게 되면 모든 환경에서 해당 패키지를 이용할 수 없게된다.
따라서 conda 환경을 사용할 때는 최대한 base 환경의 사용을 지양하고, 새로운 가상환경을 생성하는 것이 바람직하다.
해결 방법
개발서버 pydantic 버전을 운영서버와 동일하게 맞춰주고 팀원들에게 작업은 가상환경에서 할 것을 요청하였다.
반응형
'서버 및 환경 > Utils' 카테고리의 다른 글
[Docker] 컨테이너 No CUDA GPUs are available 에러 발생 해결방법 (1) | 2024.04.04 |
---|---|
[Airflow] retry와 상관없이 특정 시간 이후 task fail시키기 (0) | 2024.03.28 |
[Docker] 컨테이너 내 pip 패키지 설치 시 RuntimeError 문제 (1) | 2024.02.28 |
[conda] bash script에서 conda 명령어가 작동하지 않을 때 (0) | 2024.02.21 |
[VSCode] Wating for server log... 반복되다 연결이 안되는 문제 (0) | 2024.02.20 |