我下载了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
什么地方出了错?
您很可能不会使用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
请注意,除了版本OpenSSL 1.1.0(包含在Ubuntu 18.04存储库中,我不确定其他Linux发行版)之外,还有可能存在编译问题的python版本(请参阅this question和my answer),简而言之:
Python <3.4.5和Python <3.5.3尚未实现此最新版本的OpenSSL,很可能其他主要Python版本也遇到同样的问题。修复是下载实现修复(或更新)的次要版本。检查完整的更改日志以检查哪个次要版本(3.4和3.5的changelog)
CentOS的:
如果在安装python时没有openssl-devel
,则不会安装pip 8.1.1。安装openssl-devel
后,重新安装python
。这次它应该安装pip
文件。
如果您使用的是RedHat Enterprise Linux,则可以使用:
yum install openssl-devel -y
如果您使用Manjaro Linux,您可以使用:
sudo pacman -S openssl,检查
截至目前,CentOS或RHEL机器Python3(3.7.0)ssl不受支持。
Python支持的pip安装<= 3.6
在Ubuntu 18.04上,只有这对我有用
sudo apt-get install libssl1.0