pptx 자동 생성에서 6주간 밟은 지뢰 — OneDrive 온라인 전용 파일, LibreOffice 빈 PDF, python-pptx 글자 넘침, 렌더 캐시

앞 글 에서 예배 PPT 자동 생성 파이프라인의 구조를 정리했습니다. 이 글은 그 파이프라인을 6주간 매주 돌리면서 실제로 걸린 문제들입니다. 하나하나는 사소한데, 각각 한 주씩 잡아먹었습니다. 재현 조건과 확인 방법 위주로 적습니다. 1. OneDrive 온라인 전용 파일은 스크립트에서 못 읽는다 악보 812개가 든 폴더가 OneDrive 안에 있습니다. 어느 날 갑자기 모든 파일이 읽기 실패했습니다. OSError: [Errno 35] Resource deadlock avoided os.path.getsize() 는 정상 크기를 돌려주고 os.listdir() 도 잘 됩니다. 열어서 읽을 때만 실패합니다. 원인은 OneDrive의 Files On-Demand (온라인 전용)입니다. 오래 안 열어본 파일은 실체가 로컬에서 지워지고 자리표시자만 남는데, macOS Finder에서 열면 그때 받아오지만 컨테이너·샌드박스 안의 프로세스는 그 다운로드를 일으킬 수 없습니다. 재시도, cp , dd , 다른 API 전부 소용없습니다. 해결은 Finder에서 폴더 우클릭 → "이 기기에 항상 유지" 하나뿐입니다. 코드 쪽에서는 미리 잡아내는 점검만 넣었습니다. def readable(path): try: with open(path, "rb") as f: f.read(4) return True except OSError: return False 4바이트만 읽어도 판별됩니다. 파이프라인 첫 단계에서 이번 주에 쓸 파일만 골라 검사하고, 하나라도 실패하면 나머지를 먼저 만든 뒤 사용자에게 알립니다. 2. LibreOffice는 못 읽는 파일도 '성공'한다 1번보다 이게 더 위험합니다. 온라인 전용 파일을 soffice --convert-to pdf 에 넘기면 에러가 나지 않습니다. 빈 1페이지 PDF를 만들고 ex...