首页 > 解决方案 > 在 Raspberry Pi 上构建 Python 时出现致命错误

问题描述

我正在树莓派上构建 Python 3.9.2。

成功进行简单的构建,但是我的 Python 项目(在从repos./configure --enable-optimizations --with-ensurepip=install安装的 Python 下运行良好)不能在这个编译后的 Python 上运行。apt它引发了一大堆错误。更简单的代码运行良好。

使用python3 -c "import sysconfig; print(sysconfig.get_config_var('CONFIG_ARGS'))",我可以知道来自 repos 的 Python 正在使用哪些参数apt,所以我也尝试使用它们。我的配置行最终是这样的:

./configure --enable-optimizations --enable-shared --enable-ipv6 --enable-loadable-sqlite-extensions --with-dbmliborder=bdb:gdbm --with-computed-gotos --with-ensurepip=install --with-system-expat --with-system-libmpdec --with-system-ffi CC=arm-linux-gnueabihf-gcc "CFLAGS=-g   -fstack-protector-strong -Wformat -Werror=format-security " "LDFLAGS= -Wl,-z,relro" "CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2"

我不完全确定它们的含义,但发行版维护者认为它们足够重要,可以包含在内,所以这对我来说已经足够好了。

我遇到的问题是在最后一步。当我完成编译并运行sudo make altinstall时,我得到了一些错误:

/usr/local/src/Python-3.9.2/Modules/pyexpat.c:6:10: fatal error: expat.h: No such file or directory
...
/usr/local/src/Python-3.9.2/Modules/_decimal/_decimal.c:32:10: fatal error: mpdecimal.h: No such file or directory

问题是,这两个文件都存在于这里:

/usr/local/src/Python-3.9.2/Modules/expat/expat.h
/usr/local/src/Python-3.9.2/Modules/_decimal/libmpdec/mpdecimal.h

由于我正在编译的代码在 中/usr/local/src/Python-3.9.2,您会认为它能够在自己的构建目录中找到文件。

难道我做错了什么?

标签: python

解决方案


推荐阅读