반응형

우와 

 

뭐가 꼬였는지 

 

직접 실행하면 잘 동작하는데

크론탭으로 실행 하면 오류가 .. 오류 로그도 안떨어지고 .. 이식히

 

결론은 

도커 파이썬에서 사용하는 path 랑

크론탭 path 가 서로 달랐다..

 

=========== 디버깅 기록 =======================

 

우선 크론탭에서 로그를 남겨 보았다.

 

crontab -e

 

* * * * *  python3 /var/autobot/테스트.py >> /var/autobot/테스트.log 2>&1

 

테스트.log

를 확인해보니

 

리눅스에서 잘 실행된 소스 인데 없는 모듈이라고 나왔다..

 

크론탭으로만 실행하면 ModuleNotFoundError: No module named 'requests' 

 

개 빡침

 

pip list 로 확인해보니 당연히 모듈있음 .. 여기서 path  문제로 의심

 

파이썬에서 사용하는 path 확인

 

import sys
print(sys.executable)
print(sys.path)

해당 파일 크론탭에서도 실행해봄

 

* * * * * python3 /path/to/test_sys_path.py >> /path/to/cron_debug.log 2>&1

 

로그 확인하니 서로 경로가 다름

## 파이썬 지금 사용하는 path
## ['/var/autobot', '/usr/local/lib/python311.zip', '/usr/local/lib/python3.11', '/usr/local/lib/python3.11/lib-dynload', '/usr/local/lib/python3.11/site-packages']

## crontab dㅔ서 사용하던 경로
## ['/var/autobot', '/usr/lib/python311.zip', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', '/usr/local/lib/python3.11/dist-packages', '/usr/lib/python3/dist-packages']

 

음 어 왜 꼬였을까... 

 

그래서 그냥 크론탭 상단에 강제로 path 지정

crontab python 강제 PATH

 

잘 동작.. End..

 

 

왜 환경이 꼬였는지가 더 궁금하네.. 도대체 왜... 왜 도커써서 그런거야? 도대체 한방에 좀 쉽게 가자 엉엉

반응형

+ Recent posts