Дополнительно
Питон AttributeError: 'модуль' объект не имеет атрибут 'SSL_ST_INIT'
Скрипт Python из шахты не в состоянии с:
Traceback (most recent call last):
File "./inspect_sheet.py", line 21, in <module>
main()
File "./inspect_sheet.py", line 12, in main
workbook_name=workbook_name,
File "./google_sheets.py", line 56, in __init__
self.login()
File "./google_sheets.py", line 46, in login
self.client = gspread.authorize(credentials)
File "/usr/local/lib/python2.7/site-packages/gspread/client.py", line 335, in authorize
client.login()
File "/usr/local/lib/python2.7/site-packages/gspread/client.py", line 98, in login
self.auth.refresh(http)
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 598, in refresh
self._refresh(http.request)
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 769, in _refresh
self._do_refresh_request(http_request)
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 795, in _do_refresh_request
body = self._generate_refresh_request_body()
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 1425, in _generate_refresh_request_body
assertion = self._generate_assertion()
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 1554, in _generate_assertion
private_key, self.private_key_password), payload)
File "/usr/local/lib/python2.7/site-packages/oauth2client/crypt.py", line 162, in from_string
from OpenSSL import crypto
File "/usr/local/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "/usr/local/lib/python2.7/site-packages/OpenSSL/SSL.py", line 118, in <module>
SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'
72
19
Обновление
pyopenssl
с Pip не работает ни одна из команд, относящихся ктипун
работал для меня. При обновленииpyopenssl
сeasy_install
, выше проблема может быть решена.кредит @разделитель (ответ)
Оказалось, проблема с моей установки pyOpenSSL, pyOpenSSL-0.15.1 .
Я сделал:
а потом
...и мой Python скрипт снова работает!
Обновить
pyopenssl
модуль:У меня была похожая ошибка:
и ни один из других ответов можно было бы починить, потому что Пип не мог ничего установить. Вместо того, что я сделал это из терминала первого:
Затем переустановить pyopenssl с Pip:
и все было подливку.
Попробуйте следующие команды:
Недавно я испытал тот же вопрос, и после нескольких часов исследования, я узнал, что он был вызван новый шифрование 2.0 обновление. Это обновление будет сломать много пакетов с помощью pyopenssl (как часовой, в Google Analytics и т. д.). Просто понизить его до 1,9 решит проблему.
Будьте осторожны, если вы используете "и установить -у Пип", он будет автоматически обновлять пакеты, которые не перечислены в requirements.txt.
В моем случае, проблема заключалась в том, что пакет был установлен в корень каталоги, и я выполнял скрипт, который попросил `pyopenssl с моего пользователя Linux forvas. И что пользователь может'т использовать библиотеки, установленные в корень.
Поэтому сначала мне пришлось снять пакет с
профпригодность
илиAPT-получить
.Поэтому мне пришлось снова установить пакет, но с учетом пользователя, запускающего скрипт, который запрашивает библиотеки. Взгляните туда, где библиотеки устанавливается в зависимости от пользователей Linux и аргумент
--пользователь
изтипун
.Корпус 1
Случай 2
Случай 3
Случай 4
Корпус 5
Вывод
Моя проблема была в том, что библиотека была установлена в каталогах дела 5.
Решение
Удаление пакета.
Как я'м выполнение скрипта в Linux пользователю forvas, мне удалось переустановить пакет правильно с нужным 2 или 4 (в которой библиотека доступна для всех пользователей Linux) или более точный вариант 3 (в которой библиотека доступна только для Linux пользователей forvas).
У меня был тот же вопрос, А как типун было'т работать приходилось выполнять его работу вручную:
После этого все работало как ожидалось.
Моя проблема была вызвана версию OpenSSL, которая была в/usr/lib в/Вместо python2.7/дист-пакеты/`.
обновить -л | грэп OpenSSL и показал:
Я удалил его с помощью команды sudo apt-получить удалить питон-в OpenSSL`. Затем я выполнил следующие действия, чтобы установить дистрибутив версии типун.
`Пип-версии теперь отображает:
Тогда я был способен выполнять необходимые пункт Установить я пытался завершить.
Этот работал для меня:
Я имел эту проблему на macOS с Python 2 и 3, установленных через самогон. Получается, что зелье удалить передоза на Python и Python@2 не удаляет какие-либо библиотеки, которые были установлены для этих версий Python; т. е.:
/usr/местные/библиотека/питон3.7/сайт-пакеты/
и/usr/местные/библиотека/вместо python2.7/сайт-пакеты/
Что-то там не прав был, так что работал для меня было удалить/переместить все установленные библиотеки для Brew's в Python 2 и 3 и начать все заново (и убедитесь, что только для использования virtualenvs здесь и далее):
самогон удалить-игнорировать-зависимости Python@2 самогон удалить-игнорировать-зависимости Python судо МВ /usr/местные/библиотека/питон3.7 ~/питон3.7libs-резервное копирование судо МВ /usr/местные/библиотека/вместо python2.7 ~/вместо python2.7libs-резервное копирование самогон установить Python самогон установить Python@2
У меня была такая же проблема на Ubuntu 16.04, но со следующей особенностью: когда виртуальное окружение был активирован (
. venv/bin/активировать
перед запуском сельдерей работников с pysolr, просьбы и т. д. В моем случае) - все работало отлично, но когда я побежал сельдерей из командной строки, используя полные пути, и пути Python - была проблема (и такая же проблема работает с supervisord ). Также, если важно, виртуальное окружение была в комплекте в другом месте на машине с той же версией Ubuntu.Решение было простым: добавление `/полный/путь/к/venv/bin и в путь ( как тут посоветовали https://serverfault.com/questions/331027/supervisord-how-to-append-to-path ) решили эту.
К сожалению, я еще не заострены, какое обновление вызвало это, но, надеюсь, это может помочь кому-то.
Просто на случай, если кто-нибудь это'т найти именно правильные заклинания, чтобы сделать эту работу, по состоянию на ноябрь 2018 года, что работал для меня было:
судо РМ -РФ /usr/местные/библиотека/вместо python2.7/дист-пакеты/библиотеки/ судо АПТ установить-переустановить питон-в OpenSSL
Удачи!
Я просто столкнулся с этим на моего Ubuntu 16.04 хозяина. Как представляется, существует версия конфликта между пакетами apt РЕПО для Python-OpenSSL и питон-crypotgraphy, против того, что кто-то установил вручную с Pip в /usr/местные/вместо python2.7/дист-пакеты.
Как только он попал в это состояние, стандартная система Пип не мог'т выполнить, либо. У меня вокруг курицы и яйца проблема, установив вручную переменной окружения PYTHONPATH, что исключило /usr/местные части дерева так:
Я приобрела вышеуказанный список каталогов библиотеки для использования с оболочки Python:
а затем скопировать все перечисленные, кроме одного каталога /usr/местные. Ваша система может иметь другой список на своем пути. Соответственно корректировать.
Я также имел ручной
apt-получить установку --переустановить питон-OpenSSL команды в Python-криптография
рассыпалась у меня историю в bash, которая может или может не быть необходимым.Попробовать с:
Мое решение было намного более упрощенным после этих решений не работает для меня. Все, что я попытался установить/удалить через Пип вернулись те же ошибки и трассировка стека.
В итоге я пытаюсь обновить Пип через pip3 и она работала безупречно:
pip3 установить-обновить Пип
Я вернулся к использованию pip и все работало правильно. Я заметил, что он был ссылаясь на Python 3.6, когда выполняется пункта команды.
В моем случае, он бросал одну и ту же ошибку для удаления и обновления. Я не мог'т удалить или обновить.
AttributeError: 'модуль' объект не имеет атрибут 'SSL_ST_INIT'
Следующие работал для меня.
Предупреждение: это только при обновлении(
судо пункт Установить pyOpenSSL==16.2.0`) или удаление(
Пип удалить pyopenssl``) не'т помочьЯ видел похожие питон стека на консоль моей виртуальной машины Ubuntu 16.04, когда я попробовал по SSH к виртуальной машине.
типун
сообщили, чтоpyopenssl
не был установлен.Я должен был сделать это:
Я видел
AttributeError: 'модуль' объект не имеет атрибут 'SSL_ST_INIT'
ошибка тоже.Делать
судо пункт Установить pyOpenSSL==16.2.0
решена она для меня.