Проблемы сертификации Python SSL в Tensorflow

Я пытаюсь загрузить данные MNIST, которые предположительно обрабатываются:

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

Насколько мне известно, read_data_sets отправляет запрос на перенос на сервер для загрузки (приблизительно) 1,5 ГБ данных.

Я продолжаю получать эту ошибку отслеживания:

Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", строка 1318, в do_open encode_chunked = req.has_header ('Transfer-encoding')) File "/ Library /Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py ", строка 1239, в запросе self._send_request (method, url, body, headers, encode_chunked) File" / 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, в конечных заголовках self._send_output (message_body, encode_chunked = encode_chunked) File" /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) File" /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 / и выполнил команду «Install Certifactions.command», расположенную там, и получил эту ошибку:

Traceback (последний вызов последним): файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py", строка 544, в движении os.rename (src, real_dst) PermissionError: [ Errno 13] Permission denied: '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/certifi-2015.04.28.dist-info/DESCRIPTION.rst' -> '/ var / папки / 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-DESCRIPTION.rst '

Во время обработки вышеуказанного исключения произошло другое исключение:

Отслеживание (последний вызов последним): файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip/basecommand.py", строка 215, в основном статусе = self.run (параметры, аргументы) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip/commands/install.py", строка 342, префикс выполнения = options.prefix_path, Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip/req/req_set.py", строка 778, в файле require.uninstall (auto_confirm = True) "/ Библиотека / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6 / site-packages / pip / req / req_install.py ", строка 754, в папке удаления paths_to_remove.remove (auto_confirm) File" / Library / Frameworks / Python .framework / Versions / 3.6 / lib / python3.6 / site-packages / pip / req / req_uninstall.py ", строка 115, в файле удаления переименований (путь, новый_путь)" /Library/Frameworks/Python.framework/Versions/ 3.6 / библиотека / python3.6 / сайты-пакеты / пип / утилит / инициализация .py ", строка 267, переименовывает shutil.move (старый, новый) File" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py ", строка 559, в движении os.unlink (src) PermissionError: [Errno 13] Permission denied: '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/certifi-2015.04.28.dist-info/DESCRIPTION .rst '

Что-то не так с разрешениями моей файловой системы? Я буквально месяц назад переустановил OSX на этот компьютер ...

Есть ли способ установить сертификаты вручную? Или отправить запрос на перенос, чтобы загрузить данные на адрес, отличный от https?


person jmkmay    schedule 20.10.2017    source источник
comment
ОБНОВЛЕНИЕ: мне удалось вручную загрузить файлы с веб-сайта Яна Лекуна и поместить их в правильный каталог. Программа сейчас работает, но я бы хотел разобраться в этом.   -  person jmkmay    schedule 21.10.2017


Ответы (2)


Установите сертификаты, дважды щелкнув файл в /Applications/Python 3.6/Install Certificates.command (в macOS) или выполнив эту команду из bash терминала:

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

И теперь сертификаты установлены для загрузки данных по HTTPS.

Источник: специальный выпуск на TensorFlow GitHub для официальных моделей.

person miguelmorin    schedule 13.12.2018

замена https на http запустила

В contrib / learn / python / learn / datasets / mnist.py отредактируйте строку с SOURCE_URL = 'http://storage.googleapis.com/cvdf-datasets/mnist/ '

person Jiss Raphel    schedule 25.02.2018
comment
Когда я это сделал, у меня все еще была ошибка, но когда я отредактировал этот файл: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tensorflow/python/keras/datasets/fashion_mnist.py, а также удалил там s в https, это сработало. - person ahitt6345; 22.08.2018
comment
Это решение сработало для меня. В случае виртуальной среды расположение файла - venv/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py. - person miguelmorin; 04.12.2018