安装Python时出现pip错误:"忽略ensurepip失败:pip 8.1.1需要SSL / TLS"

时间:2016-06-09 10:21:08

标签: python install

我下载了Python 3.5源代码并运行了以下内容:

$ tar -xf Python-3.5.2.tar.xz
$ ./configure --with-ensurepip=upgrade
$ make
$ sudo make altinstall

make之前进展顺利。当sudo make altinstall运行时,它打印出来:

Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS

出了什么问题?

8 个答案:

答案 0 :(得分:61)

您很可能不会使用SSL / TLS支持编译Python - 这可能是因为您没有在系统上安装SSL开发依赖项。

安装以下依赖项,然后重新配置并重新编译Python 3.5。

<强> Ubuntu的

apt-get install libssl-dev

此外,建议安装以下内容。

apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libsqlite3-dev

<强> CentOS的

yum install openssl-devel

此外,建议安装以下内容。

yum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel

答案 1 :(得分:4)

请注意,除了版本OpenSSL 1.1.0(包含在Ubuntu 18.04存储库中,我不确定其他Linux发行版)之外,还有可能存在编译问题的python版本(请参阅this question和{{ 3}}),简而言之:

Python&lt; 3.4.5和Python&lt; 3.5.3尚未实现此最新版本的OpenSSL,很可能其他主要Python版本也遇到同样的问题。修复是下载实现修复(或更新)的次要版本。检查完整的更改日志以检查哪个次要版本(my answer3.4的更改日志)

答案 2 :(得分:2)

<强> CentOS的

如果您在安装python时没有CascadeOperations = CascadeOperation.All,则pip 8.1.1不会安装。 安装openssl-devel后,重新安装openssl-devel。 这次它应该只安装python文件。

答案 3 :(得分:0)

如果您使用的是RedHat Enterprise Linux,则可以使用:

yum install openssl-devel -y

答案 4 :(得分:0)

如果您使用的是Manjaro Linux,则可以使用此功能:

sudo pacman -S openssl,检查

答案 5 :(得分:0)

到目前为止,尚不支持CentOS或RHEL计算机Python3(3.7.0)ssl。

Python <= 3.6

支持的pip安装

答案 6 :(得分:0)

在Ubuntu 18.04上,这仅对我有用

sudo apt-get install libssl1.0

答案 7 :(得分:0)

我尝试使用asdf安装Python 3.4.10,但出现以下错误:

$ asdf install python 3.4.10
python-build 3.4.10 /home/br0ke/.asdf/installs/python/3.4.10
Downloading Python-3.4.10.tar.xz...
-> https://www.python.org/ftp/python/3.4.10/Python-3.4.10.tar.xz
Installing Python-3.4.10...
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems


BUILD FAILED (Fedora 30 using python-build 1.2.15-2-g22c02022)

Inspect or clean up the working tree at /tmp/python-build.20191121110112.9959
Results logged to /tmp/python-build.20191121110112.9959.log

Last 10 log lines:
(cd /home/br0ke/.asdf/installs/python/3.4.10/share/man/man1; ln -s python3.4.1 python3.1)
if test "xupgrade" != "xno"  ; then \
    case upgrade in \
        upgrade) ensurepip="--upgrade" ;; \
        install|*) ensurepip="" ;; \
    esac; \
     ./python -E -m ensurepip \
        $ensurepip --root=/ ; \
fi
Ignoring ensurepip failure: pip 9.0.1 requires SSL/TLS

这可能意味着我的系统中安装了太新的OpenSSL版本,而我尝试构建的Python不支持该版本。我设法使用以下步骤在Fedora 30计算机(默认情况下具有OpenSSL 1.1+)上安装了Python 3.4.10:

  1. 如果已安装openssl-devel,则暂时删除它,因为它将与旧版本冲突:
$ sudo dnf remove openssl-devel
  1. 安装兼容的OpenSSL 1.0软件包:
$ sudo dnf install compat-openssl10 compat-openssl10-devel
  1. 构建Python 3.4.10(我使用asdf,但它也应与pyenv一起使用):
$ asdf install python 3.4.10
  1. 删除compat库并安装Modern,以便下次可以构建更新鲜的内容:
$ sudo dnf remove compat-openssl10-devel
$ sudo dnf install openssl-devel

this workaround的帮助下,受到Fedora community people的启发。