在 CentOS7 上从源代码编译 Python3.4 时无法构建可选模块 readline 和 _curses

Can't build optional modules readline and _curses when compiling Python3.4 from source on CentOS7

在 CentOS 7 上从源代码编译 Python 3.4.3 时,README 指示 运行

./configure
make
make test
sudo make install

第二步,make,我看到了

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel
_dbm                  _gdbm                 _lzma
_sqlite3              _ssl                  _tkinter
readline              zlib
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

但是 setup.py 的源代码中没有任何指示做什么?看来我已经有必要的包裹了?

$ sudo yum install readline
...
Package readline-6.2-10.el7.x86_64 already installed and latest version
Nothing to do

如何获得 python 3 的 readline 模块?

安装 readline-devel

$ sudo yum install readline-devel
[...]
Installed:
  readline-devel.x86_64 0:6.2-10.el7

Dependency Installed:
  ncurses-devel.x86_64 0:5.9-14.20130511.el7_4

Dependency Updated:
  ncurses.x86_64 0:5.9-14.20130511.el7_4   [...]

Complete!

然后re-runmake

$ make
[...]
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm
_lzma                 _sqlite3              _ssl
_tkinter              zlib

现在 readline_curses 模块都已安装,并且不在缺少模块列表中。

我从这个问题的答案中得到了提示:yum showing readline installed but readline command not working

事实证明,此模式适用于其他丢失的包。 ssl 需要 openssl-devel 包,zlib 需要 zlib-devel.