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

问题描述

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

pyodbc.Error: ('HY024', "[HY024] [Microsoft] [ODBC Microsoft Access Driver] '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
            )

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

标签: pythonms-accesspyinstallerpyodbc

解决方案


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


推荐阅读