问题描述
我正在尝试运行使用pyodbc
连接到mssql服务器数据库的python脚本。尝试使用docker文件使一切正常工作。
尝试了所有内容并阅读了所有stackoverflow问题之后,将其部署到Google Cloud Run时仍然出现错误。
pyodbc.Error: ('01000',"[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/freetds/lib/libtdsodbc.so' : file not found (0) (sqlDriverConnect)")
所以我想像是找不到驱动程序文件。根据{{3}} stackoverflow的帖子,它回答说它可能必须对该路径做些事情。我尝试了建议的不同路径,但是一次又一次遇到相同的错误。
这是我完整的docker文件:
# parent image
FROM python:3.7-slim
ADD app.py /
ADD odbcinst.ini /etc/odbcinst.ini
# install FreeTDS and dependencies
RUN apt-get update \
&& apt-get install unixodbc -y \
&& apt-get install unixodbc-dev -y \
&& apt-get install freetds-dev -y \
&& apt-get install freetds-bin -y \
&& apt-get install tdsodbc -y \
&& apt-get install --reinstall build-essential -y
RUN ls -l /usr/lib/x86_64-linux-gnu/odbc/
# install pyodbc (and,optionally,sqlalchemy)
RUN pip install --trusted-host pypi.python.org pyodbc==4.0.26
RUN pip install ftputil
RUN pip install pandas
RUN pip install datetime
RUN pip install Flask gunicorn
CMD [ "python","./app.py" ]
我的odbcinst.ini看起来像这样:
[FreeTDS]
Description=FreeTDS Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
我试图通过Google Cloud Shell搜索文件,但是这根本不起作用,我不确定这是找到正确路径的正确方法吗?有人知道我在做什么错吗?这是我第一次使用docker和google cloud run。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)