Похоже, что некоторые настройки моей системы испорчены. Я нахожусь на MAC OS и у меня нет проблем с использованием браузера, чтобы перейти на любой сайт https или свернуться с сайтом ниже сбоя
Я получаю SSLError, используя мой трехстрочный код ниже (ошибка ниже)
MaxRetryError: HTTPSConnectionPool(host='maps.googleapis.com', port=443): Max retries exceeded with url: /maps/api/geocode/json?address=denver&key=AIxxxxxxxxx (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1045)')))
Я пробовал это на python2.7.10 и python3.7.0
Код, выдающий ошибку:
$ ipython
Python 3.7.0 (default, Jun 29 2018, 20:13:13)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.0.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:import googlemaps
gm = googlemaps.Client(key='AIxxxxxxxxxxxxxx')
geocode_result = gm.geocode('denver')[0]::
:--
TransportError: HTTPSConnectionPool(host='maps.googleapis.com', port=443): Max retries exceeded with url: /maps/api/geocode/json?address=denver&key=AIxxxxxxxxxxxxxx (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1045)')))
$ python
Python 2.7.10 (default, Oct 6 2017, 22:29:07)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import googlemaps
>>> gm = googlemaps.Client(key='AIxxxxxxxxxxxxxx')
>>> geocode_result = gm.geocode('denver')[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/googlemaps/client.py", line 365, in wrapper
result = func(*args, **kwargs)
File "/Library/Python/2.7/site-packages/googlemaps/geocoding.py", line 68, in geocode
return client._request("/maps/api/geocode/json", params).get("results", [])
File "/Library/Python/2.7/site-packages/googlemaps/client.py", line 240, in _request
raise googlemaps.exceptions.TransportError(e)
googlemaps.exceptions.TransportError: HTTPSConnectionPool(host='maps.googleapis.com', port=443): Max retries exceeded with url: /maps/api/geocode/json?address=denver&key=AIxxxxxxxxxxxxxx (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))
>>>
Я новичок, поэтому, пожалуйста, не будьте грубыми, это может быть просто, и именно поэтому я искал в Интернете последние 4 часа, и кажется, что your server is not sending a TLS cert chain
может быть причиной, но я не знаю, на самом деле причина или исправление к этому
Для других людей, обновляющих pyopenssl, исправили проблему (мой pyopenssl - последняя версия 19.0.0), большинство использовали запрос и использовали verify = False
для исправления.
Также, если есть какой-либо другой способ проверить, работают ли другие вызовы, пожалуйста, дайте мне знать
Ранее я также получал SSLError с pip install
, но это исправлено путем обновления pip до последней версии и добавления доверенного хоста в pip.conf
Я не смог найти похожую проблему с «решением», последняя была близка, но только для конкретного сайта:
https://github.com/kennethreitz/requests/issues/4381
https://github.com/kennethreitz/requests/issues/4247
Python запрашивает получение SSLerror
=================== // Обновление на основе комментария:
Несколько поисков сказали, что исправление должно запускаться /Applications/Python\ 3.6/Install\ Certificates.command
Я был на 3.7.0 но /Applications/Python\ 3.7/Install\ Certificates.command
не существовало
Я не смог найти правильную команду Install Certificate, поэтому я обновился до 3.7.3, и в процессе установки не было никакой команды Install Certificate
, поэтому в конце концов я опустился до 3.6.0 и выполнил указанную выше команду
$ python3 --version
Python 3.6.0
$
$ /Applications/Python\ 3.6/Install\ Certificates.command
-- pip install --upgrade certifi
Collecting certifi
Downloading https://files.pythonhosted.org/packages/69/1b/b853c7a9d4f6a6d00749e94eb6f3a041e342a885b87340b79c1ef73e3a78/certifi-2019.6.16-py2.py3-none-any.whl (157kB)
100% |████████████████████████████████| 163kB 1.0MB/s
Installing collected packages: certifi
Successfully installed certifi-2019.6.16
You are using pip version 9.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
-- removing any existing file or link
-- creating symlink to certifi certificate bundle
-- setting permissions
-- update complete
$
$ python3
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import googlemaps
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'googlemaps'
Я не уверен, отличаются ли pip3 и pip, но независимо от того, что я пробовал $ pip3 install googlemaps
, потому что я вижу, что googlemaps присутствует в pip list
, но не в pip3 list
$ pip list
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Package Version
-------------------------------------- ---------
.
.
googlemaps 3.0.2
$ pip3 list
.
.
certifi (2019.6.16)
pip (9.0.1)
$ pip3 install --ignore-installed googlemaps
Collecting googlemaps
Downloading https://files.pythonhosted.org/packages/5a/3d/13b4230f3c1b8a586cdc8d8179f3c6af771c11247f8de9c166d1ab37f51d/googlemaps-3.0.2.tar.gz
Complete output from command python setup.py egg_info:
Download error on https://pypi.python.org/simple/requests/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
Couldn't find index page for 'requests' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
No local packages or working download links found for requests<3.0,>=2.11.1
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/83/lbn35h2j2491r5wy78tpyky40000gn/T/pip-build-sknne9mv/googlemaps/setup.py", line 40, in <module>
'Topic :: Internet',
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/dist.py", line 315, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/dist.py", line 361, in fetch_build_eggs
replace_conflicting=True,
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pkg_resources/__init__.py", line 850, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1122, in best_match
return self.obtain(req, installer)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1134, in obtain
return installer(requirement)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/dist.py", line 429, in fetch_build_egg
return cmd.easy_install(req)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 659, in easy_install
raise DistutilsError(msg)
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('requests<3.0,>=2.11.1')
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/83/lbn35h2j2491r5wy78tpyky40000gn/T/pip-build-sknne9mv/googlemaps/
You are using pip version 9.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
$
Также выглядит, что у меня все еще есть Python 3.7.3, так как мой ipython открывает эту версию:
$ ipython
Python 3.7.3 (default, Mar 27 2019, 09:23:39)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import googlemaps
In [2]:
Извините, если это слишком долго, но похоже, что я что-то упустил, я потратил более 16 часов на это и все еще застрял в той же проблеме.