python访问tensorflow ssl证书鉴证失败

python访问tensorflow的时候显示ssl证书鉴证失败

import tensorflow as tf
import tensorflow_hub as hub
from keras import layers
import re, keras, random, math, os, urllib
import pandas as pd
import numpy as np
from transformers import BertTokenizer
import urllib
import ssl

ssl._create_default_https_context = ssl._create_unverified_context
context = ssl._create_unverified_context()
# 将context传入url函数的context参数中,比如
urllib.request.urlopen("https://hub.tensorflow.google.cn/tensorflow", context=context).read()

#bert_layer = hub.KerasLayer("4", trainable=False)
bert_layer = hub.KerasLayer("https://hub.tensorflow.google.cn/tensorflow/bert_zh_L-12_H-768_A-12/4", trainable=False)
vocabulary_file = bert_layer.resolved_object.vocab_file.asset_path.numpy()
to_lower_case = bert_layer.resolved_object.do_lower_case.numpy()
tokenizer = BertTokenizer(vocabulary_file, to_lower_case)

C:\Users\xx\AppData\Local\Programs\Python\Python38\python.exe C:\Users\xx\Desktop\ts_12386\classtest.py 
WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
WARNING:root:Limited tf.summary API due to missing TensorBoard installation.
WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
Traceback (most recent call last):
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 1319, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1230, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1276, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1225, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1004, in _send_output
    self.send(msg)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 944, in send
    self.connect()
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1399, in connect
    self.sock = self._context.wrap_socket(self.sock,
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1040, in _create
    self.do_handshake()
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1309, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'r1---sn-2x3eenel.gvt1-cn.com'. (_ssl.c:1108)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\xx\Desktop\ts_12386\classtest.py", line 17, in <module>
    bert_layer = hub.KerasLayer("https://hub.tensorflow.google.cn/tensorflow/bert_zh_L-12_H-768_A-12/4", trainable=False)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\keras_layer.py", line 157, in __init__
    self._func = load_module(handle, tags, self._load_options)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\keras_layer.py", line 459, in load_module
    return module_v2.load(handle, tags=tags, options=set_load_options)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\module_v2.py", line 93, in load
    module_path = resolve(handle)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\module_v2.py", line 48, in resolve
    return registry.resolver(handle)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\registry.py", line 49, in __call__
    return impl(*args, **kwargs)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\compressed_module_resolver.py", line 67, in __call__
    return resolver.atomic_download(handle, download, module_dir,
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\resolver.py", line 421, in atomic_download
    download_fn(handle, tmp_dir)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\compressed_module_resolver.py", line 63, in download
    response = self._call_urlopen(request)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow_hub\resolver.py", line 528, in _call_urlopen
    return urllib.request.urlopen(request, context=self._context)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 531, in open
    response = meth(req, response)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 640, in http_response
    response = self.parent.error(
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 563, in error
    result = self._call_chain(*args)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 502, in _call_chain
    result = func(*args)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 755, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 531, in open
    response = meth(req, response)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 640, in http_response
    response = self.parent.error(
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 563, in error
    result = self._call_chain(*args)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 502, in _call_chain
    result = func(*args)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 755, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 531, in open
    response = meth(req, response)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 640, in http_response
    response = self.parent.error(
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 563, in error
    result = self._call_chain(*args)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 502, in _call_chain
    result = func(*args)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 755, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 525, in open
    response = self._open(req, data)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 502, in _call_chain
    result = func(*args)
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 1362, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 1322, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'r1---sn-2x3eenel.gvt1-cn.com'. (_ssl.c:1108)>

进程已结束,退出代码1


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: Windows的Python3.6报错_ssl.c:749解决办法中的 4)安装tensorflow 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    我很愿意帮助您解决问题,请告诉我具体的问题内容,我会尽力给出解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^