为了解决这个问题,我几乎尝试过每一个博客,但都没有成功。
错误消息:pyodbc。OperationalError:("HYT00","[HYT00][Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期(0((SQLDriverConnect("(
下面是我的Dockerfile
FROM ubuntu:18.04
RUN apt-get update -y &&
apt-get install -y
libpq-dev
gcc
python3-pip
unixodbc-dev
RUN apt-get update && apt-get install -y
curl apt-utils apt-transport-https debconf-utils gcc build-essential g++-5
&& rm -rf /var/lib/apt/lists/*
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17
RUN pip3 install pyodbc
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
CMD [ "python3", "test.py" ]
以下是我拥有的需求文件
pyodbc==4.0.30
psycopg2-binary
sqlparams
pandas
xlrd
如果您试图从容器连接本地主机dB实例,则不确定。如果这是正确的,那么请使用IP地址而不是localhost,它应该可以工作。
更新:以下是我所做的更改。
- 我用pymssql替换pyodbc库
- 在服务器名称而不是主机名中,我添加了机器的IP地址