pyenv 如何在 OpenBSD 上检测ereadline?

问题描述

OpenBSD 基础安装中附带的 GCC 和 readline 非常旧。要解决此问题,用户可以使用 pkg_add 安装更新版本(gcc 8.4 和 readline 7)。但是,它们被重命名/usr/local/bin/egcc/usr/local/include/ereadline,这会在 pyenv 下构建 Python 时产生问题。

我可以通过设置 CC 变量 (export CC=/usr/local/bin/egcc) 来让 pyenv 使用 egcc,但是我找不到让它检测 ereadline 的方法。这意味着每个构建都会发出错误 WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?

如何扩展 pyenv 构建的库检测以获取 /usr/local/include/ereadline

为了记录,(e)readline 在 OpenBSD 上的布局如下所示:

/usr/local/include/ereadline/readline/chardefs.h
/usr/local/include/ereadline/readline/history.h
/usr/local/include/ereadline/readline/keymaps.h
/usr/local/include/ereadline/readline/readline.h
/usr/local/include/ereadline/readline/rlconf.h
/usr/local/include/ereadline/readline/rlstdc.h
/usr/local/include/ereadline/readline/rltypedefs.h
/usr/local/include/ereadline/readline/tilde.h
/usr/local/info/ehistory.info
/usr/local/info/ereadline.info
/usr/local/info/erluserman.info
/usr/local/lib/libehistory.a
/usr/local/lib/libehistory.so.2.0
/usr/local/lib/libereadline.a
/usr/local/lib/libereadline.so.2.0
/usr/local/man/man3/ehistory.3
/usr/local/man/man3/ereadline.3
/usr/local/share/doc/readline/CHANGES
/usr/local/share/doc/readline/INSTALL
/usr/local/share/doc/readline/README
/usr/local/share/readline/excallback.c
/usr/local/share/readline/fileman.c
/usr/local/share/readline/hist_erasedups.c
/usr/local/share/readline/hist_purgecmd.c
/usr/local/share/readline/histexamp.c
/usr/local/share/readline/manexamp.c
/usr/local/share/readline/rl-callbacktest.c
/usr/local/share/readline/rl-fgets.c
/usr/local/share/readline/rl.c
/usr/local/share/readline/rlbasic.c
/usr/local/share/readline/rlcat.c
/usr/local/share/readline/rlevent.c
/usr/local/share/readline/rlptytest.c
/usr/local/share/readline/rltest.c
/usr/local/share/readline/rlversion.c

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)