처음하는 거라 떨리는 마음과 호기심으로 과제를 실행에 봤습니다.😄
어쩌다 보니 미션부터 시작하게 되었네요.
미션1.
결과물을 갖고, 파이썬으로 실행
미션2.
알려준데로 API키를 생성했고, PyCharm에서 코드를 실행시켰습니다.
뜻하지 않은 처음 경험하는 에러에, 눈이 커지고, 식은 땀이 납니다.😰
에러1
/Users/jinmilks/Desktop/pythonProject/.venv/bin/python /Users/jinmilks/Desktop/pythonProject/Gpters.py
Traceback (most recent call last):
File "/Users/jinmilks/Desktop/pythonProject/Gpters.py", line 1, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
Process finished with exit code 1
이에 대한 Claude 답변으로…
이 에러는 `requests` 모듈이 설치되지 않았거나 Python 인터프리터가 해당 모듈을 찾을 수 없을 때 발생합니다.
에러 메시지를 보면 "ModuleNotFoundError: No module named 'requests'"라고 나와 있는데, 이는 `requests` 모듈이 없다는 것을 의미합니다.
`requests` 모듈을 설치하려면 다음 단계를 따르세요:
1. PyCharm에서 터미널을 엽니다.
- 메뉴에서 "View" -> "Tool Windows" -> "Terminal"을 선택하면 터미널 창이 열립니다.
2. 터미널에서 다음 명령어를 입력하여 `requests` 모듈을 설치합니다:
```
pip install requests
```
3. 설치가 완료되면 Python 파일을 다시 실행해보세요.
만약 여전히 같은 에러가 발생한다면, PyCharm에서 사용 중인 Python 인터프리터에 `requests` 모듈이 설치되어 있는지 확인해야 합니다.
1. PyCharm에서 "File" -> "Settings" (Windows/Linux) 또는 "PyCharm" -> "Preferences" (macOS)를 선택하여 설정 창을 엽니다.
2. "Project: pythonProject" -> "Python Interpreter"를 선택합니다.
3. "Python Interpreter" 드롭다운 메뉴에서 사용 중인 Python 인터프리터를 선택합니다.
4. 선택한 인터프리터의 패키지 목록에서 `requests` 모듈이 있는지 확인합니다.
5. 만약 `requests` 모듈이 목록에 없다면, "+" 버튼을 클릭하여 `requests` 모듈을 검색하고 설치합니다.
위 단계를 따라 `requests` 모듈을 설치하고, 사용 중인 Python 인터프리터에 해당 모듈이 설치되어 있는지 확인하세요. 그러면 ModuleNotFoundError가 해결될 것입니다.
설치가 완료되면 Python 파일을 다시 실행하여 날씨 정보가 잘 출력되는지 확인해보세요.
설치 완료 후 다시 실행했습니다.
에러2를 만납니다.
/Users/jinmilks/Desktop/pythonProject/.venv/bin/python /Users/jinmilks/Desktop/pythonProject/Gpters.py
Traceback (most recent call last):
File "/Users/jinmilks/Desktop/pythonProject/Gpters.py", line 12, in <module>
weather_description = data["weather"][0]["description"]
~~~~^^^^^^^^^^^
KeyError: 'weather'
Process finished with exit code 1
다시 물어보고 아래와 같이 답변을 받아서 실행.
이 에러는 API 응답으로 받은 JSON 데이터의 구조가 예상과 다를 때 발생합니다.
KeyError: 'weather'는 data 딕셔너리에 'weather' 키가 없다는 것을 의미합니다. 즉, OpenWeatherMap API에서 받은 JSON 데이터에 'weather' 키가 없거나, API 요청이 실패하여 예상한 데이터를 받지 못한 것 같습니다.
이 문제를 해결하기 위해 다음 사항을 확인해보세요:
API 키가 유효한지 확인하세요. OpenWeatherMap에서 발급받은 API 키를 정확히 입력했는지 다시 한번 확인해주세요.
API 요청 URL이 올바른지 확인하세요. 도시 이름과 API 키가 올바르게 포함되어 있는지 확인해주세요.
API 응답 상태 코드를 확인하세요. response.status_code를 출력하여 API 요청이 성공했는지 확인할 수 있습니다. 상태 코드가 200이면 요청이 성공한 것이고, 다른 값이라면 API 요청에 문제가 있는 것입니다.
에러3을 만났습니다.
Status Code: 401
API 요청이 실패했습니다.
Process finished with exit code 0
다시 물어보고 아래와 같이 답변을 받아서, 키를 다시 복사해서 실행 했습니다.
Status Code: 401은 "Unauthorized" 오류를 의미합니다. 이는 API 요청이 인증되지 않았거나 잘못된 인증 정보를 사용했을 때 발생하는 오류입니다.
OpenWeatherMap API의 경우, 401 오류는 주로 다음과 같은 이유로 발생합니다:
유효하지 않은 API 키:
API 키가 잘못 입력되었거나 유효하지 않은 경우 401 오류가 발생합니다.
OpenWeatherMap에서 발급받은 API 키를 정확히 입력했는지 다시 한번 확인해주세요.
API 키 권한 문제:
사용 중인 API 키가 해당 API 엔드포인트에 대한 접근 권한이 없는 경우에도 401 오류가 발생할 수 있습니다.
OpenWeatherMap에서 API 키를 발급받을 때 선택한 플랜에 따라 접근 가능한 API 엔드포인트가 제한될 수 있습니다.
API 키 할당량 초과:
OpenWeatherMap의 무료 플랜에는 일일 API 요청 횟수 제한이 있습니다.
할당된 일일 요청 횟수를 초과하면 401 오류가 발생할 수 있습니다.
이 문제를 해결하려면 다음 사항을 확인해보세요:
API 키 확인:
OpenWeatherMap에서 발급받은 API 키를 정확히 입력했는지 확인하세요.
API 키를 복사할 때 실수로 공백이나 줄 바꿈 문자가 포함되지 않도록 주의하세요.
성공했습니다.
다른 도시들을 입력해서 결과값을 확인했고, 가끔 에러3이 다시 반복적으로 나타는 것을 확인했습니다.
이게 API의 문제인지, 코드의 문제인지 잘 모르겠습니다.
이 번에 과제에서 에러 근육의 중요성에 대해 배울 수 있었고, 모르면 물어보면 되는 구나를 아주 잘 배웠습니다.
#10기문과생도