【问题标题】:from urllib3.util.ssl_ import ( ImportError: cannot import name sslfrom urllib3.util.ssl_ import ( ImportError: cannot import name ssl
【发布时间】:2019-06-10 13:03:27
【问题描述】:

我的资源:

Python 2.7、Ubunutu 18.04、Pycharm、虚拟机甲骨文

我有一个用 python 构建的自动化解决方案。 当然,该解决方案可以从cmdpycharm 运行。 运行自动化解决方案的 2 个选项。

python main.py args a,b,c...(run 1 suite of tests)
python jenkinsRun.py arg a,b,c...(run main.py with diff args each time -lets say 5 time for instance)

一旦jenkinsRun.py 运行,它将像这样执行每个main.py

os.system('python main.py %s %s %s %s %s %s'%(STD,config.VpcStackName, '-dryrun', 'false', '-tenant' ,config.PROD_STAGE_Tenant))

请注意,这是我 3 年前实现它的方式..可能是更好的方法,例如使用 __import__,但需要传递参数的方法等...

无论如何,运行时:

python main.py arg a,b,c..

一切都好。

运行时:

jenkinsRun.py

每次使用 diff args 都应该运行 main 我得到异常:

"/home/ohad/.local/lib/python2.7/site-packages/botocore/httpsession.py", line 7, in <module>
    from urllib3.util.ssl_ import (
ImportError: cannot import name ssl

仅当我在新环境中运行代码时才会发生这种情况(请参阅上面的资源) 上周我有一个带有 ubuntu 15.04(旧)的旧 virtul 盒子,一切正常(从那以后就没有碰过vode)。

我已经从头开始在新的虚拟机上安装了库、驱动程序等。

有什么想法吗?

【问题讨论】:

  • 只是为了确保:您确定您正在调用 Python 2.x 吗? Ubuntu 18.04 默认使用3.x,因此请确保您不会意外使用另一个 python 版本启动脚本
  • 正在检查,但主要运行完美,而 jenkinsRun 没有。
  • 你是对的! pycharm 解释器是 /usr/bin/python 没问题,但是当它调用 os.system('python main bla bla ..) 它指向 /usr/local/bin/python。非常感谢.BTW - 怎么能我关闭这个问题

标签: python python-2.7


【解决方案1】:

只是为了确保:您确定您正在调用 Python 2.x 吗?

Ubuntu 18.04 具有 Python 3.x 作为默认值,因此请确保您不会意外地使用另一个 python 版本启动脚本。

【讨论】:

    【解决方案2】:

    在创建新环境(也使用 Boto3)后,我遇到了类似的错误。原来是一个 DLL 错误 (ImportError: DLL load failed),它被 SSL 模块捕获,导致问题中的错误:ImportError: cannot import name ssl

    我的解决方案是在路径中添加一个额外的文件夹:path_to_anaconda/Anaconda3/Library/bin。这样,DLL 加载成功并解决了给定的 ImportError。

    【讨论】:

      【解决方案3】:

      安装可能有问题。我确实在 MAC 上重新安装了它并且它工作了

      sudo pip install awscli --ignore-installed six
      

      【讨论】:

        【解决方案4】:

        碰壁时我正在使用 PyCharm。

        通过将路径重定向到我的 Anaconda 环境来解决这个问题,我会更好地配置和更新该环境。

        【讨论】:

          【解决方案5】:

          更新最新版本的awscli,通过以下命令行在我的 Mac 上解析。

          curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o

          "AWSCLIV2.pkg" sudo 安装程序 -pkg AWSCLIV2.pkg -target /

          参考:

          https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-mac.html#cliv2-mac-install-cmd

          【讨论】:

            【解决方案6】:

            在卸载、安装、甚至创建环境之后……这对我有用!

            https://stackoverflow.com/a/60405693

            【讨论】:

              【解决方案7】:

              我不确定它为什么会起作用。但是,我在 AWS Glue 中遇到了这个问题,我能够通过使用 Glue 3.0 而不是 Glue 2.0 来解决这个问题。

              【讨论】:

                【解决方案8】:

                就我而言,这个问题显然来自boto3botocoreawscli 的冲突版本。这解决了我的问题:

                pip install boto3 botocore awscli --ignore-installed
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2019-07-20
                  • 2020-07-16
                  • 2014-09-25
                  • 2014-01-02
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-11-13
                  • 2022-08-22
                  相关资源
                  最近更新 更多