잘 테스트되고 작동하는 스크립트가 있습니다. 스크립트를 실행하려고 할 때 /root/backup/script.py
또는 ~/backup/script.py
스크립트가 실행되어 스크립트 내에서 호출된 다른 파일을 찾을 때 스크립트에서 파일을 찾을 수 없음 오류가 발생하는 문제가 발생했습니다 . 다른 컴퓨터에서도 작동하지만 설정은 동일하며 python backup/script.py
홈 디렉터리에서 실행하거나 직접 실행하면 python script.py
작동합니다. 얻으려는 파일은 script.py와 동일한 디렉토리에 있으므로 무엇이 잘못되었는지 알 수 없습니다. 스크립트에서 호출한 첫 번째 파일을 가져올 수 있지만 파일은 가져올 수 없습니다.
동일한 방식으로 수행하면 다른 시스템에서도 작동하기 때문에 이것이 일종의 경로 문제일 수 있다고 생각합니다.
편집하다
첫 번째 댓글을 읽은 후 충돌이 발생하는 코드 조각을 게시했고 제가 말했듯이 첫 번째 파일도 찾을 수 없다는 것을 깨달았습니다. 코드에 버그가 있어서 죄송합니다. 위에서 말했듯이 다른 위치에서는 작동하지만 제가 언급한 두 위치에서는 작동하지 않습니다.
storage = Storage("user_creds.dat")
credentials = storage.get()
if credentials is None or credentials.invalid:
credentials = run_flow(flow_from_clientsecrets("client_secrets.json", OAUTH_SCOPE, ), storage, fla$
답변1
파일을 찾을 수 없음 오류는 다른 디렉터리에서 스크립트를 실행하면 발생할 수 있습니다.
storage = Storage("user_creds.dat")
user_creds.dat
스크립트가 시작되었는지 여부만 알 수 있습니다.~에서예를 들어 이 디렉토리는
]$ pwd
~/backup
]$ python script.py
어디에서나 스크립트를 시작할 수 있어야 하는 경우 이를 지정할 수 있습니다 user_creds.dat
. 또는 다음 명령을 사용하여 스크립트가 있는 디렉터리를 가져올 수 있습니다.
os.path.dirname(os.path.realpath(__file__))
그런 다음 다음을 통해 저장 개체를 얻을 수 있습니다.
os.path.join(os.path.dirname(os.path.realpath(__file__)), 'user_creds.dat')