pyenv如何在OpenBSD上检测(e)readline?

2024-10-04 03:16:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

请注意,OpenBSD上(e)readline的布局如下所示:

/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

Tags: infopyenvsharereadlinedocbinincludelib