【问题标题】:ImportError: cannot import name HTTPSHandler installing get-pip.pyImportError:无法导入名称 HTTPSHandler 安装 get-pip.py
【发布时间】:2014-06-29 20:44:24
【问题描述】:

我在尝试安装 pip2.7 时遇到此错误。 我已经将 python 2.7 作为我的默认设置,但我不确定我为什么会得到这个。

操作系统:CentOS 6.5

OpenSSL 已安装。 我按照本指南安装 Python 2.7: http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

[root@myservername arandomfolder]# python get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 17474, in <module>
    main()
  File "get-pip.py", line 17466, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 17406, in bootstrap
    import pip
  File "/tmp/tmpXq2wUP/pip.zip/pip/__init__.py", line 10, in <module>
  File "/tmp/tmpXq2wUP/pip.zip/pip/util.py", line 18, in <module>
  File "/tmp/tmpXq2wUP/pip.zip/pip/_vendor/distlib/version.py", line 14, in <module>
  File "/tmp/tmpXq2wUP/pip.zip/pip/_vendor/distlib/compat.py", line 31, in <module>
ImportError: cannot import name HTTPSHandler

【问题讨论】:

  • 你用的是什么操作系统?
  • 我使用的是 Centos 6.5 我已经安装了 Python 2.7,它还预装了 Python2.6 我也安装了 OpenSSL。
  • python是指python 2.6还是2.7?
  • @PadraicCunningham 它指的是 Python 2.7 # which python alias python='/usr/local/bin/python2.7' /usr/local/bin/python2.7

标签: python python-2.7 pip


【解决方案1】:

您编译了不支持 SSL 的 Python。不幸的是,get-pip 似乎需要 SSL 支持。

如果您使用的是 Linux 发行版,请确保安装了 OpenSSL,包括从源代码编译 Python 时的标头。

【讨论】:

  • 我打算给出相同的答案,但正在等待实际找出 OP 使用的是什么操作系统。
  • @PadraicCunningham:显然不是 Windows。 Mac OS X 带有一个包含 OpenSSL 支持的 Python,并且编译它会正确地拾取头文件。所以它要么是 BSD,要么是 Linux 发行版。
  • 我明白,但不同的 Linux 发行版有不同的软件包。
  • @PadraicCunningham:当然,如果 OP 寻求帮助,我们可以添加该信息。
  • @PadraicCunningham 我使用的是 Centos 6.5 我已经安装了 Python 2.7,它还预装了 Python2.6 我也安装了 OpenSSL。
【解决方案2】:

所以看起来我缺少 openssl-devel 依赖项 安装后,我就可以安装了。

【讨论】:

    【解决方案3】:

    即使我安装了 openssl 和 openssl-devel,我在 Centos 6.5 机器上也遇到了这个问题。我也使用了网站上的步骤: http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

    我删除了之前安装的 python 包:virtualenv、NetworkX 和 pil:

    pip uninstall virtualenv
    pip uninstall NetworkX
    pip uninstall pil
    

    然后我再次编译 Python 2.7,不再有这个问题。按照下面链接中的步骤操作后,我使用 pip2.7 重新安装了上述软件包:

    pip2.7 install virtualenv
    pip2.7 install NetworkX
    pip2.7 install pil --allow-external pil --allow-unverified pil
    

    【讨论】:

      【解决方案4】:

      我也遇到了同样的问题。我通过安装openssl-develreconfiguremakemake install python3 解决了这个问题:

      yum install openssl-devel
      

      然后转到python3目录:

      ./configure --with-zlib --with-openssl
      
      make
      
      make install
      

      【讨论】: