Я студент, изучающий Python, и я работаю с получением информации с веб-страниц. Если я пытаюсь запустить эту программу, которая извлекает информацию из канала живого землетрясения, я получаю ошибку SSL (подробнее об этом ниже). В коде, который мне известен, ошибок нет, так как я следую вместе с учителем по онлайн курс.
Я попытался выполнить как команду Install Certificates, так и команду Update Shell Profile, но ни одна из них не работает. Я пишу в Python 3.7.2 в Visual Studio Code, я также на Mac. Я получаю код ошибки:
Exception has occurred: URLError
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1319, in do_open
raise URLError(err)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1360, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 543, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 755, in http_error_302
return self.parent.open(new, timeout=req.timeout)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 563, in error
result = self._call_chain(*args)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 531, in open
response = meth(req, response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 222, in urlopen
Я также получил это сообщение в моем терминале:
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/certifi-2019.3.9.dist-info'
Consider using the `--user` option or check the permissions.
You are using pip version 18.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command
Я попытался набрать это в терминале, и он говорит, что команда не найдена. Я пользуюсь школьным компьютером, поэтому некоторые вещи заблокированы, и, возможно, это часть проблемы, я не знаю точно. Вот мой код:
import urllib.request
import json
def printResults(data):
theJSON = json.loads(data)
if "title" in theJSON["metadata"]:
print(theJSON["metadata"]["title"])
count = theJSON["metadata"]["count"]
print (str(count) + " events recorded")
def main():
urlData = "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson"
webUrl = urllib.request.urlopen(urlData)
print ("result code: " + str(webUrl.getcode()))
if (webUrl.getcode() == 200):
data = webUrl.read()
printResults(data)
else:
print("Received error, cannot parse results")
if __name__ == "__main__":
main()
Если у вас есть решение, помните, что я студент первого семестра компьютерных наук, поэтому объясните это просто, пожалуйста.