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

标签 python ms-access pyinstaller pyodbc

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

pyodbc.Error: ('HY024', "[HY024] [Microsoft] [ODBC Microsoft Access Driver] 'U:\OFFICE\GIS\accessdatabase.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides. (-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
            )

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

最佳答案

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

关于python - 为什么从 python 脚本编译的 .exe 无法连接到远程 MS Access 数据库? [HY024],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51791938/

相关文章:

python - 使用 Pyinstaller 编译 Gekko

python-3.x - PyInstaller ModuleNotFoundError --paths 标志似乎不起作用

python - 如何向 PyInstaller 编译的 EXE 添加 list ?

python - 如何模拟 os.listdir 以假装 Python 中的文件和目录?

php - PDO Access 数据库 - 插入行时出现非法字符

python - 多索引 Seaborn 线图

xml - 如何使用备忘录数据类型将 XML 导入到 MS Access?

sql - 更新查询如果满足另一个中指定的条件,则更新其中的数据

python - 如何在Python中读取多个nltk语料库文件并写入单个文本文件

python - pytest parametrize - 来自 CSV 的行作为测试用例