2017-04-25 7 views
1

私のコードはとてもシンプルです。urllib.request.urlopenは毎回Python 3.6のエラーを出しています

import urllib.request 
x = urllib.request.urlopen('https://www.google.com/') 
print(x.read()) 

、それは私にこのエラーを与えている:

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/myName/Library/Preferences/PyCharmCE2017.1/scratches/scratch_3.py 
Traceback (most recent call last): 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1318, in do_open 
    encode_chunked=req.has_header('Transfer-encoding')) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1239, in request 
    self._send_request(method, url, body, headers, encode_chunked) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1285, in _send_request 
    self.endheaders(body, encode_chunked=encode_chunked) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1234, in endheaders 
    self._send_output(message_body, encode_chunked=encode_chunked) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1026, in _send_output 
    self.send(msg) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 964, in send 
    self.connect() 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1400, in connect 
    server_hostname=server_hostname) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 401, in wrap_socket 
    _context=self, _session=session) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 808, in __init__ 
    self.do_handshake() 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 1061, in do_handshake 
    self._sslobj.do_handshake() 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 683, in do_handshake 
    self._sslobj.do_handshake() 
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
File "/Users/MattAltro/Library/Preferences/PyCharmCE2017.1/scratches/scratch_3.py", line 3, in <module> 
    x = urllib.request.urlopen('https://www.google.com/') 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 223, in urlopen 
    return opener.open(url, data, timeout) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 526, in open 
    response = self._open(req, data) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 544, in _open 
    '_open', req) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 504, in _call_chain 
    result = func(*args) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1361, in https_open 
    context=self._context, check_hostname=self._check_hostname) 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1320, in do_open 
    raise URLError(err) 
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)> 

プロセスを助けてください、終了コード1

で仕上げ!

答えて

0

SSLでセキュリティ上の問題が発生しているようです。 それは私のために働く。

  • いつも同じエラーが発生しますか?
  • ブラウザでhttps://www.google.com/にアクセスしたときにロックしましたか?そうでない場合、これはPythonの問題ではなく、接続の問題です。
  • 場合によっては、追加の引数verify=Falseでセキュリティチェックを無効にする必要があります。
+0

はいです。 ブラウザのロックを確認するにはどうすればよいですか?私はマックに問題があるかもしれない? – mattpython

0

OS XとPython 3.6のようです。 Python 3.6では、SSLを動作させるためにインストール後の手順が必要です。二つのオプションが明らかにあります。

  • は/アプリケーションを実行する認証取得パッケージをインストール/ Pythonの3.6/Certificates.command
私はPythonが自作を通じてインストールしていた

をインストールしますので、私はしませんでした.commandファイルがあり、これはcertifiパッケージだけで試してみました。パッケージは正常にインストールされますが、SSLはまだ動作しません。私はPython 3.6(from python.org)をダウンロードし、Install Certificates.commandを実行しました。それはそこからうまくいった。

関連する問題