我试图在我的raspberry pi上安装“用于Server的ODBC驱动程序17”,但没有成功。
这就是我试过的
FROM arm32v7/python:3
RUN apt-get update
1. Install dependencies for PyODBC and tds
RUN apt-get install -y tdsodbc unixodbc-dev
RUN apt install unixodbc-bin -y
RUN apt-get clean -y
2. Edit /etc/odbcinst.ini
RUN echo "[FreeTDS]\n\
Description = FreeTDS unixODBC Driver\n\
Driver = /usr/lib/arm-linux-gnueabi/odbc/libtdsodbc.so\n\
Setup = /usr/lib/arm-linux-gnueabi/odbc/libtdsS.so" >> /etc/odbcinst.ini
3. Install requirements (contains pyodbc)
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
Copy and run my app
COPY . .
CMD [ "python", "app.py"]我的代码:
import pyodbc
def inserare(operator,loc_munca,comanda,stare,data,ora,bucati):
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=.\SQLEXPRESS;DATABASE=database;UID=pi;PWD=pass')
cursor = conn.cursor()
cursor.execute("insert into Pontaj values (?,?,?,?,?,?,?)",operator,loc_munca,comanda,stare,data,ora,bucati)
cursor.commit()
cursor.close()来自python shell的错误
pyodbc.Error:('01000',"01000Driver ManagerCan不能打开lib >'ODBC驱动程序17 for Server‘:文件未找到(0) (SQLDriverConnect)")
来自终端的错误
sudo apt安装freetds-dev freetds-bin unixodbc-dev tdsodbc阅读包列表.完成构建依赖树 正在读取状态信息...Done包tdsodbc不可用,但由另一个包引用。这可能意味着软件包丢失了,已经过时,或者只能从另一个来源获得。 E:无法找到包自由-dev E:找不到货箱。 E:“tdsodbc”包没有安装候选程序
发布于 2019-08-05 07:56:42
我设法通过修改odbc.ini和odbcinst.in来解决这个问题,在修改了这些文件之后,我能够连接到数据库。我认为ODBC 17是空白的,这就是问题所在。
odbc.ini
Driver = FreeTDS
Description = My Test Server
Trace = No Server
Name = mssql
Port = port
instance = ip\SQLEXPRESS
Database = yourdatabase
TDS_Version = 4.2odbcinst.ini
Description=FreeTDS
Driver v0.91
Driver=/usr/lib/arm-linux-gnueabihf/odbc/libtdsodbc.so
Setup=/usr/lib/arm-linux-gnueabihf/odbc/libtdsS.so
fileusage=1
dontdlclose=1
UsageCount=1https://stackoverflow.com/questions/57269988
复制相似问题