Docker中Python3.7安装Scipy遇sys/endian.h缺失错误求助
sys/endian.h: No such file or directory in Python 3.7.0a4 Docker Container Hey there, let's work through this Scipy install issue you're facing! That missing sys/endian.h error is a classic system dependency hiccup, especially with early preview versions of Python like 3.7.0a4. Here are a few actionable fixes to try:
1. Install the missing system header package
The sys/endian.h file is part of the libc6-dev package, which might not be included in the minimal Python 3.7.0a4 Docker image. Add it to your apt-get install command:
apt-get update && \ apt-get -y install \ libblas-dev \ liblapack-dev \ libatlas-base-dev \ gfortran \ libc6-dev
Then run pip install scipy again.
2. Pin Scipy to a version compatible with Python 3.7.0a4
Python 3.7.0a4 is an early alpha release, and newer Scipy versions have dropped support for it. Try installing an older, compatible version of Scipy:
pip install scipy==1.1.0
This version was released around the time Python 3.7 was in preview, so it should play nice with the alpha build.
3. Explicitly set the header file path for the compiler
If the header exists but the compiler can't locate it, force the include path with CFLAGS:
CFLAGS="-I/usr/include" pip install scipy
This tells the C compiler to look in /usr/include (where sys/endian.h lives) for required system headers.
4. Switch to a more complete base image
The official python:3.7.0a4 image might be stripped down to save space. Try using a full Debian/Ubuntu base image and installing Python 3.7.0a4 manually:
docker run --rm -it debian:stretch bash apt-get update && apt-get -y install python3.7-dev libblas-dev liblapack-dev libatlas-base-dev gfortran libc6-dev pip3.7 install scipy
Why this works in Python 3.6?
The Python 3.6 Docker image is based on a mature, stable environment with all necessary system dependencies pre-configured, and Scipy maintains full support for Python 3.6 across most versions. The early alpha Python 3.7 image just doesn't have the same level of polish or pre-configured compatibility yet.
内容的提问来源于stack exchange,提问作者Oduvan

