为什么从python脚本编译的.exe无法连接到远程ms访问数据库? [HY024]

时间:2018-08-10 18:09:38

标签: python ms-access pyinstaller pyodbc

我正在尝试使用Python pyodbc连接到Access .mdb数据库。我连接到本地数据库,并且工作正常。该数据库包含指向网络驱动器上的后端.mdb的链接表。尝试从链接表中选择时收到此错误:

  

pyodbc.Error :(“ HY024”,“ [HY024] [Microsoft] [ODBC Microsoft Access驱动程序]'U:\ OFFICE \ GIS \ accessdatabase.mdb'不是有效路径。请确保路径名称为拼写正确,并且您已连接到文件所在的服务器。(-1023)(SQLExecDirectW)“)

路径名正确,如果我进入本地数据库并打开它们,链接表可以正常工作。 python程序从不提及网络数据库或它的路径,它仅连接到本地数据库。

python脚本工作正常。我仅在运行由Pyinstaller生成的已编译.exe时收到错误。此外,同事可以在Windows 10上编译,并且他的.exe可以正常工作。但是它必须在Windows 7上编译才能生成可在Windows 7上运行的.exe。

Windows 7。

conn_str = (
            r'DRIVER={Microsoft Access Driver (*.mdb)};'
            r'Uid=Admin;Pwd=;'
            r'DBQ=' + self.path
            )

任何帮助或指导将不胜感激!谢谢

1 个答案:

答案 0 :(得分:1)

不确定这是否是一个答案,还是更多解决方法,但是我通过使用本地数据库中的'\ server \ name \ path'样式路径重新链接远程数据库表来使其正常工作的“ U:\ path”样式。显然,由于某种原因,已编译的程序试图以管理员身份运行,并且在命令窗口中,以管理员身份运行时映射的驱动器不可用。我想分享一下,以防其他人遇到类似的问题。