pip error while installing Python: “Ignoring ensur

2020-02-08 07:09发布

问题:

I downloaded the Python 3.5 source code and ran the following:

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

It proceeded well until make. When sudo make altinstall ran, it printed:

Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS

What went wrong?

回答1:

You are most likely not compiling Python with SSL/TLS support - this is likely because you don't have the SSL development dependencies installed on your system.

Install the following dependency, and then re-configure and re-compile Python 3.5.

Ubuntu

apt-get install libssl-dev

In addition it is recommended to install the following.

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

CentOS

yum install openssl-devel

In addition it is recommended to install the following.

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


回答2:

Please note that besides that as of version OpenSSL 1.1.0 (included from Ubuntu 18.04 repositories, I am not sure for other Linux distributions) there are python vesions that may have compilation issues (see this question and my answer), in short:

Python <3.4.5 and Python <3.5.3 have not implemented this newest version of OpenSSL, most likely other major Python versions suffer the same issue. The fix is to download the minor version that implements the fix (or newer). Check the full changelogs to check which minor version that is (changelog for 3.4 and 3.5)



回答3:

On Ubuntu 18.04 only this worked for me

sudo apt-get install libssl1.0


回答4:

CentOS:

If you didn't have openssl-devel at the time of installing python, pip 8.1.1 won't install. After installing openssl-devel, reinstall python. This time it should install pip just file.



回答5:

If you are using RedHat Enterprise Linux, you can use this:

yum install openssl-devel -y


回答6:

If you use Manjaro Linux, you can use this:

sudo pacman -S openssl , check



回答7:

CentOS or RHEL machine Python3(3.7.0) ssl not supported as of now.

pip installation supported with Python <=3.6



回答8:

I tried to install Python 3.4.10 using asdf but got following error:

$ 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

It may mean that I have too fresh OpenSSL version installed in my system and this version is not supported by Python I'm trying to build. I managed to install Python 3.4.10 on my Fedora 30 machine (has OpenSSL 1.1+ by default) using the following steps:

  1. Temporary remove openssl-devel if it is installed as it will conflict with older version:
$ sudo dnf remove openssl-devel
  1. Install compat OpenSSL 1.0 packages:
$ sudo dnf install compat-openssl10 compat-openssl10-devel
  1. Build Python 3.4.10 (I use asdf but it should work with pyenv as well):
$ asdf install python 3.4.10
  1. Remove compat library and install modern instead to be able to build something more fresh next time:
$ sudo dnf remove compat-openssl10-devel
$ sudo dnf install openssl-devel

Inspired by this workaround with help from Fedora community people.