繁体   English   中英

无法在 docker 中安装 pyodbc 并获取错误命令“gcc”失败,退出状态为 1

[英]Cannot install pyodbc in docker and getting error command 'gcc' failed with exit status 1

我正在尝试在 linux 容器内运行的 docker 中安装 pyodbc 但我收到以下错误

点击这里查看图片

 src/pyodbc.h:56:10: fatal error: sql.h: No such file or directory
   #include <sql.h>
            ^~~~~~~
  compilation terminated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pyodbc

这是我的码头文件

FROM mcr.microsoft.com/azure-functions/python:2.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY . /home/site/wwwroot
FROM ubuntu
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
    apt-get -y install gcc mono-mcs && \
    rm -rf /var/lib/apt/lists/*
FROM  python
RUN apt-get update && apt-get install -y python3-pip
# RUN /usr/bin/pip -r /home/site/wwwroot/requirements.txt
# WORKDIR /home/site/wwwroot
COPY --from=0 /home/site/wwwroot /home/site/wwwroot
RUN cd /home/site/wwwroot && pip install -r requirements.txt

注意:我要将代码推送到 linux 机器中的 azure functionapp

我有同样的问题,我在我的 docker 文件中添加了以下代码,它开始工作。 Microsoft docker 映像缺少unixodbc-dev ,因此您需要使用以下命令单独安装。

RUN apt-get update && apt-get install -y --no-install-recommends \
    unixodbc-dev \
    unixodbc \
    libpq-dev 

这是对我有用的设置:

# pull official base image
FROM python:3.9.2-slim-buster

# install system dependencies
RUN apt-get update \
  && apt-get -y install gcc \
  && apt-get -y install g++ \
  && apt-get -y install unixodbc unixodbc-dev \
  && apt-get clean

并且pyodbc包安装成功。

错误是:

 src/pyodbc.h:56:10: fatal error: sql.h: No such file or directory
   #include <sql.h>

这告诉您您缺少文件sql.h 查看 PyODBC 的文档,它似乎需要 UnixODBC 开发环境。

大多数主要发行版的上述链接都有安装说明。 您需要更新 Dockerfile 以安装unixodbc-dev软件包。

此链接也很有帮助,您缺少安装所需的强制性文件。 将 Debain 的以下命令添加到 Dockerfile ,该链接包含所有解决方案

运行 apt-get update && apt-get install -y gcc unixodbc-dev

https://github.com/mkleehammer/pyodbc/issues/165

可以在文档中找到 pyodbc 所需的依赖项的综合列表。 确保所有这些都已安装。

PYODBC 安装文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM