Как установить библиотеку Adafruit-GPIO в Docker - PullRequest
0 голосов
/ 18 июня 2019

Я новичок в Docker, так что может быть что-то я делаю не так.Я пытаюсь установить Adafruit-GPIO в контейнере, но я получаю эту ошибку, и я не знаю, как ее решить.Я собираю файл локально на ПК с Windows 10, используя Powershell.

Я убедился, что GCC установлен правильно и он установлен.Я искал в Интернете ответ, и мне не о чем продолжать.

Dockerfile:

FROM balenalib/raspberry-pi-debian-python:3.7.2

RUN pip3 install --upgrade pip
RUN sudo pip3 install --upgrade setuptools
RUN sudo apt-get update && apt-get -y install gcc
RUN pip3 install adafruit-gpio

Я ожидаю, что файл скомпилируется и будет работать успешно.Вместо этого я получаю это,

    ERROR: Complete output from command /usr/local/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-qfol0jyh/spidev/setup.py'"'"';f=getattr(tokenize, '"'"'open'"
'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-i37a5wvt/install-record.txt -
-single-version-externally-managed --compile:
    ERROR: running install
    running build
    running build_ext
    building 'spidev' extension
    creating build
    creating build/temp.linux-armv6l-3.7
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.7m -c spidev_module.c -o build/temp.linux-armv6l-3.7/spidev_module.o
    In file included from /usr/lib/gcc/arm-linux-gnueabihf/6/include-fixed/syslimits.h:7:0,
                     from /usr/lib/gcc/arm-linux-gnueabihf/6/include-fixed/limits.h:34,
                     from /usr/local/include/python3.7m/Python.h:11,
                     from spidev_module.c:28:
    /usr/lib/gcc/arm-linux-gnueabihf/6/include-fixed/limits.h:168:61: fatal error: limits.h: No such file or directory
     #include_next <limits.h>  /* recurse down to the real one */
                                                                 ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command "/usr/local/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-qfol0jyh/spidev/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);cod
e=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-i37a5wvt/install-record.txt --single-version-external
ly-managed --compile" failed with error code 1 in /tmp/pip-install-qfol0jyh/spidev/

1 Ответ

0 голосов
/ 19 июня 2019

Установка build-essential для замены gcc может заставить вас работать, см. Официальный Git .

На самом деле, при сборке исходного кода всегда лучше установить build-essential, потому чтоон установит не только gcc, но и какой-нибудь пакет разработчика.Ваша ошибка fatal error: limits.h: No such file or directory только потому, что вы пропустили этот пакет разработчика.

Одним словом, следующий будет работать для вас:

RUN sudo apt-get update && apt-get -y install build-essential
...