我下载了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
出了什么问题?
答案 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 answer和3.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:
$ sudo dnf remove openssl-devel
$ sudo dnf install compat-openssl10 compat-openssl10-devel
asdf
,但它也应与pyenv
一起使用):$ asdf install python 3.4.10
$ sudo dnf remove compat-openssl10-devel
$ sudo dnf install openssl-devel
在this workaround的帮助下,受到Fedora community people的启发。