python - 安装 2.7.5 时出现段错误

标签 python pyenv

我在一个相对干净的 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/

相关文章:

python - 为什么在 `multiprocessing.Pool().apply_async()` 中使用了不止一名 worker ?

python - Django:如何在不知道有多少信息可用的情况下很好地格式化模板中的地址?

python - BigQuery : "unexpected LIMIT clause at:" error when using list query job

python - pyenv 在激活虚拟环境时不再正确设置路径

python - 仍然找到安装了 pyenv 的系统 python - 安装模块

python - 自定义Python线程池同步

python - 如何在不更新字典(Python)的情况下检查 defaultdict 中的键?

python - Pip 不使用垫片,而是使用 pyenv 的系统 'pip'

macos - 尝试安装 pyenv 时出现 Homebrew 错误

python - django、pyenv、uwsgi - ModuleNotFoundError : No module named 'django'