我在一个相对干净的 Ubuntu 18.10 上。我正在尝试开始使用 pyenv 并设法使用它来安装 python 3.7.2。
然而,我尝试的第二件事是安装 2.7.5 并且无论我尝试什么,都失败了。
$ pyenv install 2.7.5
Downloading Python-2.7.5.tgz...
-> https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
Installing Python-2.7.5...
patching file ./Modules/readline.c
Hunk #1 succeeded at 204 (offset -2 lines).
Hunk #2 succeeded at 747 (offset -2 lines).
Hunk #3 succeeded at 857 (offset -2 lines).
Hunk #4 succeeded at 905 (offset -13 lines).
patching file ./Lib/site.py
patching file ./Lib/ssl.py
Hunk #2 succeeded at 430 (offset -5 lines).
patching file ./Modules/_ssl.c
Hunk #1 succeeded at 65 (offset -2 lines).
Hunk #2 succeeded at 304 (offset -4 lines).
Hunk #3 succeeded at 1729 (offset -83 lines).
BUILD FAILED (Ubuntu 18.10 using python-build 1.2.9-12-g99092d7f)
Inspect or clean up the working tree at /tmp/python-build.20190219134616.5823
Results logged to /tmp/python-build.20190219134616.5823.log
Last 10 log lines:
Modules/python.o \
libpython2.7.a -lpthread -ldl -lutil -lm
/usr/bin/ld: libpython2.7.a(posixmodule.o): in function `posix_tmpnam':
/tmp/python-build.20190219134616.5823/Python-2.7.5/./Modules/posixmodule.c:7515: warning: the use of `tmpnam_r' is dangerous, better use `mkstemp'
/usr/bin/ld: libpython2.7.a(posixmodule.o): in function `posix_tempnam':
/tmp/python-build.20190219134616.5823/Python-2.7.5/./Modules/posixmodule.c:7462: warning: the use of `tempnam' is dangerous, better use `mkstemp'
./python -E -S -m sysconfig --generate-posix-vars
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
make: *** [Makefile:464: pybuilddir.txt] Segmentation fault (core dumped)
出于好奇,我尝试了一个干净的新安装的 VM 并得到相同的错误,但在官方 Docker 镜像上它确实有效。所以我的环境一定有问题。
但是什么?
最佳答案
Python 2.7.5 将无法使用 gcc-8 Ubuntu 8.2.0-7ubuntu1
正确构建编译器,这是 Ubuntu 18.10 的默认编译器。
解决此问题的最简单方法是安装 gcc 7.3.0
和符号链接(symbolic link)到 /usr/bin/gcc
.
在这个问题的答案中很好地描述了如何做到这一点downgrade-gnu-compilers-ubuntu-18-04 .
关于python - 安装 2.7.5 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54767555/