아직 원인을 명확히 밝혀내지는 못했으나 소켓과 관련된 오류인 것 같습니다. 그런데 소켓이나 드라이브 마운트를 하는 코드가 아니라서... 좀 더 알아봐야 할 것 같습니다. 재실행하니 문제는 해결됐습니다. 오류 핸들러는 추후에 따로 추가하는 것이 좋아보입니다.
B가 코딩하면 Boding
blog
15 Posts
오류 해결
오류 해결/Twitter API
tweepy.errors.TweepyException: Failed to send request: ('Connection aborted.', OSError(107, 'Transport endpoint is not connected'))
오류 해결/서버
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte
해당 오류는 SSH를 연결하는 MobaXterm 자체의 문제로 보입니다. 한글 변수를 인식하지 못하는 문제로, ipynb 파일을 python 파일로 변환하는 과정에서 문제가 발생했습니다. 먼저 ipynb 파일을 변환하기 전, 아래의 코드를 파일 상단에 적어주었습니다. # -*- coding: utf-8 -*- 이후 아래의 코드를 입력하자 해결되었습니다. jupyter nbconvert --to script FILE_NAME.ipynb sudo rm -rf /tmp/-home-ubuntu-FILE_NAME-.lock
오류 해결/서버
PermissionError: [Errno 13] Permission denied: 'FILE_NAME.json’
코드가 파일을 수정하는 코드를 포함하고 있을때, 해당 파일에 접근할 권한을 갖지 못했기 때문에 발생한 오류입니다. 해당 오류는 Linux의 Ubuntu 서버에서 발생한 오류로, 권한을 주어 아래처럼 실행하면 해결됩니다. sudo python3 run_py.py 혹은 Bash 상에서 해당 파일을 sudo 명령어 없이 사용하고 싶다면 현재 그 파일의 권한이 누구에게 가 있는지(root 사용자, 그룹 사용자, 그 외 등) 확인할 필요가 있습니다. 이 경우 먼저 해당 파일의 권환을 확인해볼 필요가 있습니다. 리눅스에서는 이러한 권환을 확인할 수 있는 명령어가 있습니다. ll (해당 파일의 위치 경로 입력) 해당 명령어를 입력할 경우, 아래 사진과 유사한 것들이 Bash에 뜨게 됩니다. 읽는 법은 차례대로 사용자..
오류 해결/코드
UnboundLocalError: local variable 'VARIABLE_NAME' referenced before assignment
함수 바깥에 전역 변수를 선언하고 함수 내부에서 그 전역 변수의 값을 수정할 때, global 선언을 하지 않아서 발생하는 오류입니다. 개인적으로 변수의 값을 읽어들이는 때에는 문제가 없었던 것 같습니다. 함수 바깥에 있는 전역 변수를 사용하기 전에는 꼭 함수 내부에서 global 선언 후 사용하도록 합시다. 오류의 정확한 내용은 “이 함수 내부에서 선언해서 생성한 적이 없는데 어떻게 사용하는 거임?” 하고 묻는 겁니다. 코드를 아래처럼 짜면 오류가 발생합니다. x = 10 def func(): # 아래 주석처럼 전역변수 선언을 해주지 않으면 오류 발생 # global x x += 1 print(x) func()
오류 해결/코드
TypeError: bad operand type for unary +: 'str’
string을 string과 더하지 않고 int나 다른 변수와 더했을 때 발생하는 오류처럼 보입니다. + 연산자를 사용할 때에는 더해주는 변수의 자료형을 확인해주도록 합시다.
오류 해결/gspread
APIError: {'code': 429, 'message': "Quota exceeded for quota metric 'Read requests' and limit 'Read requests per minute per user' of service …
구글 스프레드시트 API에서는 1분당 호출할 수 있는 API의 수가 정해져있는데, 그 한도를 초과했을 때 나타나는 오류입니다. 코드가 API를 너무 지나치게 많이 호출하고 있는 건 아닌지 확인해주면 됩니다. 참고로 gspread의 limit은 60초에 300개의 requests입니다. 만약 requests 호출의 수를 컨트롤 할 수 없는 경우라면, try문을 사용하여 해당 오류가 발생하더라도 코드가 멈추지 않도록 해주는 게 좋습니다.