【问题标题】:MacOs Catalina AWS CLI Error "ImportError: cannot import name 'ssl' from 'urllib3.util.ssl_'"MacOs Catalina AWS CLI 错误“ImportError: cannot import name 'ssl' from 'urllib3.util.ssl_'”
【发布时间】:2020-07-12 01:22:43
【问题描述】:

使用 Python v.3.7.2 运行 MacOs v10.15.v 和 AWS CLI 并产生错误 -

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)

任何指针将不胜感激!

【问题讨论】:

    标签: python-3.x aws-cli macos-catalina


    【解决方案1】:

    我遇到了同样的问题。你可以验证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'
    >>>
    

    不是在 brew 之外安装 python 包并在 brew 之外安装 aws 命令行,如对此问题的自我回答中所述,这是对我有用的解决方案

    • 安装 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
    

    【讨论】:

      【解决方案2】:

      好的 - 所以我在这个网站上找到了一篇文章,其中介绍了 Python 的卸载过程以及如何恢复原状,从 here 开始工作。

      我使用的关键部分:

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

      然后用 Python 设置 MacOs Catalina,我关注了this 文章。主要观点:

      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
      

      【讨论】:

      • 我绝对不推荐这个。 brew uninstall --ignore-dependencies python 以多种方式破坏了我的环境。我什至不能再次运行vim,直到我重新安装了我以前拥有的相同的python版本。 (没想到vim有python上的dep,但我们来了。)
      猜你喜欢
      • 2019-06-10
      • 1970-01-01
      • 2022-08-15
      • 2019-07-20
      • 2020-07-16
      • 2014-09-25
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多