首页 文章

Tensorflow中的Python SSL认证问题

提问于
浏览
1

我正在尝试下载据称在以下处理的MNIST数据:

tensorflow.examples.tutorials.mnist.input_data.read_data_sets()

据我所知,read_data_sets向服务器发送拉取请求以下载(约)1.5GB的数据 .

我一直收到这个追溯错误:

文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py”,第1318行,在do_open编码_chunked = req.has_header('Transfer-encoding'))文件“/ Library / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6 / http / client.py“,第1239行,请求self._send_request(方法,url,正文, Headers ,encode_chunked)文件”/ Library / Frameworks /Python.framework/Versions/3.6/lib/python3.6/http/client.py“,第1285行,在_send_request self.endheaders(body,encode_chunked = encode_chunked)文件”/Library/Frameworks/Python.framework/Versions/ 3.6 / lib / python3.6 / http / client.py“,第1234行,在endheaders中self._send_output(message_body,encode_chunked = encode_chunked)文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6 /http/client.py“,第1026行,在_send_output self.send(msg)文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py“,第964行,在发送self.connect()文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ http / client.py“,第1400行,连接server_hostname = server_hostname)文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py“,第401行,在wrap_socket _context = self ,_session = session)文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py”,第808行,在init self.do_handshake()文件“/ Library / Frameworks / Python中 . framework / Versions / 3.6 / lib / python3.6 / ssl.py“,第1061行,在do_handshake self._sslobj.do_handshake()文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ ssl.py“,第683行,在do_handshake self._sslobj.do_handshake()ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:748)

它显然与SSL证书python使用有关...所以我去了/ Applications / Python 3.6 /并执行了位于那里的“安装Certifactions.command”并得到了这个错误:

Traceback(最近一次调用最后一次):文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py”,第544行,移动os.rename(src,real_dst)PermissionError: [Errno 13]权限被拒绝:'/ Library / Frame /Python.framework / Version / 3.6 / lib / python3.6 / site-packages /certifi-2015.04.28.dist-info / DESES.rst' - >'/ var /folders/mq/g_jy_1qx1vjdb3xmdh7y62y80000gn/T/pip-3m8ixnf5-uninstall/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/certifi-2015.04.28.dist-info/DESCRIPTION.rst '在处理上述异常期间,发生了另一个异常:Traceback(最近一次调用最后一次):文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip/basecommand.py “,第215行,主状态= self.run(options,args)文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip/commands/install.py“ ,第342行,在run prefix = options.prefix_path,File“/ Library / Frameworks / Python.framework / Version / 3 .6 / lib / python3.6 / site-packages / pip / req / req_set.py“,第778行,安装要求.uninstall(auto_confirm = True)文件”/Library/Frameworks/Python.framework/Versions/3.6/ lib / python3.6 / site-packages / pip / req / req_install.py“,第754行,在uninstall paths_to_remove.remove(auto_confirm)文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6 /site-packages/pip/req/req_uninstall.py“,第115行,删除重命名(path,new_path)文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ pip / utils / init.py“,第267行,重命名为shutil.move(旧的,新的)文件”/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py“,第559行,在移动os.unlink(src)中PermissionError:[Errno 13]权限被拒绝:'/ Library / Frame /Python.framework / Version / 3.6 / lib / python3.6 / site-packages /certifi-2015.04.28.dist-信息/ DESCRIPTION.rst”

我的文件系统权限有问题吗?我大约一个月前在这台计算机上重新安装了OSX ......

有没有办法可以手动安装证书?或者发出pull请求将数据下载到非https地址?

2 回答

  • 2

    用http替换https使其运行

    在contrib / learn / python / learn / datasets / mnist.py中使用SOURCE_URL ='http://storage.googleapis.com/cvdf-datasets/mnist/'编辑该行

  • 0

    安装证书,双击 /Applications/Python 3.6/Install Certificates.command (在macOS上)中的文件,或从 bash 终端运行此命令:

    /Applications/Python\ 3.6/Install\ Certificates.command
    

    现在安装证书以通过HTTPS下载数据 .

    资料来源:dedicated issue on TensorFlow GitHub for official models .

相关问题