MacOs Catalina AWS Ошибка интерфейса командной строки «ImportError: невозможно импортировать имя 'ssl' из 'urllib3.util.ssl_'» - PullRequest
0 голосов
/ 06 мая 2020

работает MacOs v10.15.v и AWS CLI с Python v.3.7.2, и это дает ошибку -

qwerty@qwerty-mbp > aws --version
Traceback (most recent call last):
  File "/usr/local/bin/aws", line 19, in <module>
    import awscli.clidriver
  File "/usr/local/aws/lib/python3.7/site-packages/awscli/clidriver.py", line 17, in <module>
    import botocore.session
  File "/usr/local/aws/lib/python3.7/site-packages/botocore/session.py", line 30, in <module>
    import botocore.credentials
  File "/usr/local/aws/lib/python3.7/site-packages/botocore/credentials.py", line 42, in <module>
    from botocore.utils import InstanceMetadataFetcher, parse_key_val_file
  File "/usr/local/aws/lib/python3.7/site-packages/botocore/utils.py", line 31, in <module>
    import botocore.httpsession
  File "/usr/local/aws/lib/python3.7/site-packages/botocore/httpsession.py", line 7, in <module>
    from urllib3.util.ssl_ import (
ImportError: cannot import name 'ssl' from 'urllib3.util.ssl_' (/usr/local/aws/lib/python3.7/site-packages/urllib3/util/ssl_.py)

Любой указатель будет очень признателен!

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

У меня была такая же проблема. Вы можете проверить, что модуль ssl не установлен в дистрибутиве python:

 /usr/local/Cellar/python@3.8/3.8.3_2/bin/python3
Python 3.8.3 (default, Jul 10 2020, 18:24:31)
[Clang 11.0.3 (clang-1103.0.32.62)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python@3.8/3.8.3_2/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 98, in <module>
    import _ssl             # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'
>>>

Вместо установки пакета python за пределами brew и установки командной строки aws вне brew, как описано в Самостоятельный ответ на этот вопрос, вот решение, которое сработало для меня

  • установить инструменты Xcode: xcode-select --install
  • переустановить python версию brew: brew reinstall python@3.8

После этого

/usr/local/Cellar/python@3.8/3.8.3_2/bin/python3
Python 3.8.3 (default, Jul  8 2020, 14:27:55)
[Clang 11.0.3 (clang-1103.0.32.62)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
aws --version
aws-cli/2.0.30 Python/3.8.3 Darwin/19.5.0 botocore/2.0.0dev34
0 голосов
/ 06 мая 2020

Хорошо - я нашел на этом сайте статью, в которой рассказывается о процессе удаления Python и о том, как вернуть «чистый лист», на котором можно будет работать здесь .

Ключевые части, из которых я использовал:

brew uninstall --ignore-dependencies python
rm -rf $(pyenv root)
brew uninstall pyenv-virtualenv
brew uninstall pyen

Затем, чтобы настроить MacOs Catalina с Python, я следил за этой статьей. Основные моменты из него:

pyenv install 3.7.7

qwerty@qwerty-mbp > python -V
Python 3.7.3 

qwerty@qwerty-mbp > pyenv global 3.7.7

qwerty@qwerty-mbp > pyenv version
3.7.7 (set by /Users/qwerty/.pyenv/version)

qwerty@qwerty-mbp > python -V
Python 3.7.7 

Потом пришлось переустановить AWS CLI:

sudo rm -rf /usr/local/aws && sudo rm /usr/local/bin/aws

qwerty@qwerty-mbp > python --version
Python 3.6.1

cd /tmp/

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

unzip awscli-bundle.zip

sudo /Users/qwerty/.pyenv/shims/python awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

qwerty@qwerty-mbp > /usr/local/bin/aws --version
aws-cli/1.18.53 Python/3.7.7 Darwin/19.4.0 botocore/1.16.3
...