【发布时间】:2021-11-11 20:04:16
【问题描述】:
我在使用 pyinstaller 时遇到了 MS SQL 连接问题。在交互模式下运行时,一切都按预期工作。编译成exe后,第一次查询MS SQL数据库连接超时,报如下错误:
(pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]Named Pipes Provider: 无法打开与 SQL Server [53] 的连接。(53) (SQLDriverConnect) ; [08001] [Microsoft][ODBC Driver 17 for SQL Server]登录超时过期 (0); ...
我的连接字符串类似如下:
create_engine(
"mssql+pyodbc://USER:PASSWORD@SERVERIP/DB_NAME?driver=ODBC+Driver+17+for+SQL+Server"
)
在尝试诊断问题时,我正在使用 pyodbc.drivers() 打印出可供 pyodbc 使用的驱动程序(这表明编译和交互中可用的驱动程序之间存在很大差异)以及正在使用的驱动程序
print(session.bind.dialect.name)
> pyodbc
print(session.bind.dialect.driver)
> mssql
它返回正在使用的上层 Python 模块,但不返回在较低层处理它的 .dll。有没有办法找到正在使用的确切驱动程序?任何可能导致编译版本错误的提示也将不胜感激。
【问题讨论】:
标签: sql-server python-3.x sqlalchemy pyinstaller