우와
뭐가 꼬였는지
직접 실행하면 잘 동작하는데
크론탭으로 실행 하면 오류가 .. 오류 로그도 안떨어지고 .. 이식히
결론은
도커 파이썬에서 사용하는 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..
왜 환경이 꼬였는지가 더 궁금하네.. 도대체 왜... 왜 도커써서 그런거야? 도대체 한방에 좀 쉽게 가자 엉엉