From bd471980888f2b1d0bd1e181c344bc94e266ef27 Mon Sep 17 00:00:00 2001 From: tkrmagid Date: Thu, 21 May 2026 21:30:01 +0900 Subject: [PATCH] =?UTF-8?q?fix(backend):=20setuptools<80=20=ED=95=80=20(py?= =?UTF-8?q?krx=20=EA=B0=80=20pkg=5Fresources=20=ED=95=84=EC=9A=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 증상 — 사금향 게임컴 (192.168.10.13) 백엔드 진단으로 확정: POST /api/refresh/005930 → pykrx_ohlcv: failed error: 'No module named pkg_resources' root cause: setuptools 80.0.0 (2025-04) 이 pkg_resources 모듈을 제거함. Dockerfile 의 'pip install --upgrade ... setuptools ...' 가 최신 (80+) 을 설치 → pykrx 의 'import pkg_resources' 가 import 실패. 해결: 1) bootstrap 단계에서 'pip install setuptools<80' 명시 핀 2) reqs.txt 설치 후에도 동일 핀 반복 (transitive upgrade 차단) 3) 빌드 단계에서 'import pkg_resources' 확인 — 깨지면 빌드 실패시켜 런타임에서 발견되는 일 없도록 함 이 패치 후 KIS (이미 ok 였음) 와 함께 pykrx ohlcv/trading_value 가 정상 동작 → chart 자동 충전 (fa817b3) 이 의도대로 데이터 채워 넣음. 별개 이슈 (이 커밋 범위 밖): FinBERT/Chronos 가 RTX 3070 Ti 에서 'no kernel image is available for execution on the device' 발생. 임시 회피: .env 에 MODEL_DEVICE=cpu 추가. --- backend/Dockerfile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 40ad56d..d63d4a8 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -23,8 +23,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && curl -sSL https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py \ && python /tmp/get-pip.py \ && rm /tmp/get-pip.py \ - && python -m pip install --upgrade pip setuptools wheel \ + && python -m pip install --upgrade pip wheel \ + && python -m pip install "setuptools<80" \ && rm -rf /var/lib/apt/lists/* +# setuptools 80+ 은 pkg_resources 모듈을 제거함. pykrx 가 `import pkg_resources` 를 +# 하므로 80 미만으로 핀. 아래 reqs.txt 단계에서 다른 deps 가 setuptools 재upgrade 를 +# 트리거하지 않도록 별도 명령으로 고정. # Sanity check: 이 출력은 빌드 로그에 박혀서 다음에 인터프리터 불일치 의심될 때 즉시 확인 가능. RUN python -V && python -m pip -V @@ -45,7 +49,9 @@ RUN python -m pip install --extra-index-url https://download.pytorch.org/whl/cu1 RUN python -c "import tomllib; \ deps = tomllib.load(open('pyproject.toml','rb'))['project']['dependencies']; \ open('/tmp/reqs.txt','w').write('\n'.join(deps))" \ - && python -m pip install -r /tmp/reqs.txt + && python -m pip install -r /tmp/reqs.txt \ + && python -m pip install "setuptools<80" \ + && python -c "import pkg_resources; print('pkg_resources OK from', pkg_resources.__file__)" COPY app ./app