python - 为什么从 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
)
任何帮助或指示将不胜感激!谢谢
解决方案
不确定这是否是一个确切的答案,或者更多的解决方法,但我通过使用本地数据库中的 '\server\name\path' 样式路径而不是 'U 重新链接远程数据库表来让它工作:\path' 风格的。显然,编译的程序由于某种原因试图以管理员身份运行,并且在命令窗口中,以管理员身份运行时映射的驱动器不可用。想我会分享,以防其他人有类似的问题。
推荐阅读
- javascript - 延迟加载和 ajax 调用问题
- list - 如何获取未知长度的 CMake 列表的最后一个元素?
- rust - 在 Substrate 框架中,如何从 Keypair 中获取私钥(secret key)?
- google-cloud-platform - GKE 上的 Kubernetes 入口在 https 上的 http / SSL_ERROR_SYSCALL 上导致 502 响应
- xamarin - 此 apk 导致未使用的代码和资源
- database - 将网站迁移到中文服务器后无法访问 wp-admin
- html - 如何允许鼠标单击靠近元素?
- mysql - Cloud Run:连接到 Cloud SQL 实例
- excel - 使用宏将单元格信息粘贴到电子邮件正文
- spring-boot-admin - 2.1.4 SBA 文档中的 NotifierConfiguration 示例