从 ubuntu docker 图像中删除 perl 会导致 pyodbc 失败
Removing perl from ubuntu docker image cause pyodbc to fail
运行 进入预期问题,尝试使用 python 和 pyodbc 准备基于 ubuntu 20.04 的图像。
FROM ubuntu:20.04
# install mssql odbc driver
RUN apt-get update && apt-get upgrade -y && apt-get install -y curl gnupg build-essential
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc-dev
# install python 3.7.9 from source
RUN apt-get install -y python3 python3-pip
# clean up
# this does not work
RUN apt-get remove -y perl curl gnupg && apt-get autoremove -y
# this works
# RUN apt-get remove -y curl gnupg && apt-get autoremove -y
RUN pip3 install pyodbc
如果不删除perl,安装pyodbc是没有问题的,但是如果删除perl,就会出现如下错误:
src/pyodbc.h:56:10: fatal error: sql.h: No such file or directory
好像 unixodbc-dev 由于某种原因也被删除了。有人 运行 以前参与过这个吗?如果需要 perl,apt-get
不会阻止它被删除吗?或者我需要安装一组不同的 c 绑定才能完成这项工作。
安装 msodbcsql17 后 运行ning apt-get install -f
也无济于事。
谢谢。
unixodbc-dev
作为传递依赖项安装,并在不再需要时自动删除,即在删除 perl 之后。您需要明确安装它:
RUN apt-get install -y unixodbc-dev
有关详细信息,请参阅以下错误报告:https://github.com/mkleehammer/pyodbc/issues/441
运行 进入预期问题,尝试使用 python 和 pyodbc 准备基于 ubuntu 20.04 的图像。
FROM ubuntu:20.04
# install mssql odbc driver
RUN apt-get update && apt-get upgrade -y && apt-get install -y curl gnupg build-essential
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc-dev
# install python 3.7.9 from source
RUN apt-get install -y python3 python3-pip
# clean up
# this does not work
RUN apt-get remove -y perl curl gnupg && apt-get autoremove -y
# this works
# RUN apt-get remove -y curl gnupg && apt-get autoremove -y
RUN pip3 install pyodbc
如果不删除perl,安装pyodbc是没有问题的,但是如果删除perl,就会出现如下错误:
src/pyodbc.h:56:10: fatal error: sql.h: No such file or directory
好像 unixodbc-dev 由于某种原因也被删除了。有人 运行 以前参与过这个吗?如果需要 perl,apt-get
不会阻止它被删除吗?或者我需要安装一组不同的 c 绑定才能完成这项工作。
安装 msodbcsql17 后 运行ning apt-get install -f
也无济于事。
谢谢。
unixodbc-dev
作为传递依赖项安装,并在不再需要时自动删除,即在删除 perl 之后。您需要明确安装它:
RUN apt-get install -y unixodbc-dev
有关详细信息,请参阅以下错误报告:https://github.com/mkleehammer/pyodbc/issues/441