在 64 位 centos 上为 32 位 python 安装 python readline 时,我发现这个线程正在寻找相同“LONGBIT”错误的答案。该链接没有直接答案,因此我不得不进一步搜索答案(对于经验丰富的 linux 用户/开发人员来说,这可能是直截了当的)。为了将来参考,解决方案是通过在 CFLAGS 环境变量中使用“-m32”来强制 32 位。
bash-3.2$ easy_install readline
Searching for readline
Reading http://pypi.python.org/simple/readline/
Reading http://www.python.org/
Best match: readline 2.6.4
Downloading http://pypi.python.org/packages/source/r/readline/readline-2.6.4.tar.gz#md5=7568e8b78f383443ba57c9afec6f4285
Processing readline-2.6.4.tar.gz
Running readline-2.6.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-mqr9wH/readline-2.6.4/egg-dist-tmp-p3apfF
In file included from /usr/local/python2.6/include/python2.6/Python.h:58,
from Modules/readline.c:8:
/usr/local/python2.6/include/python2.6/pyport.h:685:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
error: Setup script exited with error: command 'gcc' failed with exit status 1
然后我尝试使用 CFLAGS=-m32:
bash-3.2$ CFLAGS=-m32 easy_install readline
Searching for readline
Reading http://pypi.python.org/simple/readline/
Reading http://www.python.org/
Best match: readline 2.6.4
Downloading http://pypi.python.org/packages/source/r/readline/readline-2.6.4.tar.gz#md5=7568e8b78f383443ba57c9afec6f4285
Processing readline-2.6.4.tar.gz
Running readline-2.6.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-uauVci/readline-2.6.4/egg-dist-tmp-YY0tQa
In file included from /usr/include/features.h:352,
from /usr/include/limits.h:27,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h:122,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/syslimits.h:7,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h:11,
from /usr/local/python2.6/include/python2.6/Python.h:19,
from Modules/readline.c:8:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
error: Setup script exited with error: command 'gcc' failed with exit status 1
最新的错误是由于没有 32 位的 glibc-devel 包(感谢这个线程)。我还必须安装 ncurses-devel.i386 ,然后 easy_install 完成并且 ipython 识别了它。我的生活感觉被毁了,直到我为了 ipython 而工作。
bash-3.2$ CFLAGS=-m32 easy_install readline
Searching for readline
Reading http://pypi.python.org/simple/readline/
Reading http://www.python.org/
Best match: readline 2.6.4
Downloading http://pypi.python.org/packages/source/r/readline/readline-2.6.4.tar.gz#md5=7568e8b78f383443ba57c9afec6f4285
Processing readline-2.6.4.tar.gz
Running readline-2.6.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dHly4D/readline-2.6.4/egg-dist-tmp-oIEDYl
Adding readline 2.6.4 to easy-install.pth file
Installed /home/hari/bin/python/lib/python2.6/site-packages/readline-2.6.4-py2.6-linux-x86_64.egg
Processing dependencies for readline
Finished processing dependencies for readline