msys2 不会将驱动程序文件夹识别为有效
msys2 won't recognize driver folder as valid
我有一个使用 ODBC 连接的 python 程序,因此需要找到数据库驱动程序。由于我无法在我的 python 的 mingw64 版本上安装 pyodbc(我被告知 pyodbc 具有硬编码的 MSVC 标志,因此很难做到),我改为使用常规 windows python 安装我 运行 从 msys2 中安装,只需更改我的路径以指向该 python 安装(也许我应该做更多的事情来针对不同的 python安装?)
现在我 运行 遇到的问题是,当我尝试 运行在 msys2 中使用它,我收到以下错误:
conn = pyodbc.connect(link)
pyodbc.InterfaceError: ('IM003', '[IM003] Specified driver could not be
loaded due to system error 126: The specified module could not be found.
(Teradata, C:\Program Files\Teradata\Client\14.10\ODBC Driver for
Teradata nt-x8664\Lib\tdata32.dll). (160) (SQLDriverConnect)')
问题是目录是正确的,我什至可以 运行
cd "C:\Program Files\Teradata\Client\14.10\ODBC Driver for Teradata nt-x8664\Lib\"
从 msys2 中运行,它工作正常并且将该目录识别为有效目录并且它包含一个名为 tdata32.dll 的文件。使用 winpty python myprogram.py
也没有解决这个问题。
那么,为什么我的系统找不到这个驱动程序目录,而只有当我从 msys2 运行宁 python 程序时才找到?
我怀疑 tdata32.dll 依赖于其他 DLL,并且找不到其中一个,因为当您从 MSYS2 运行 Python 时它不在 PATH 上。
尝试添加一行 Python 代码以在两个环境中打印 PATH 环境变量的内容以检查问题。
您还可以使用 Dependency Walker 查看 tdata32.dll 依赖的 DLL。
我有一个使用 ODBC 连接的 python 程序,因此需要找到数据库驱动程序。由于我无法在我的 python 的 mingw64 版本上安装 pyodbc(我被告知 pyodbc 具有硬编码的 MSVC 标志,因此很难做到),我改为使用常规 windows python 安装我 运行 从 msys2 中安装,只需更改我的路径以指向该 python 安装(也许我应该做更多的事情来针对不同的 python安装?)
现在我 运行 遇到的问题是,当我尝试 运行在 msys2 中使用它,我收到以下错误:
conn = pyodbc.connect(link)
pyodbc.InterfaceError: ('IM003', '[IM003] Specified driver could not be
loaded due to system error 126: The specified module could not be found.
(Teradata, C:\Program Files\Teradata\Client\14.10\ODBC Driver for
Teradata nt-x8664\Lib\tdata32.dll). (160) (SQLDriverConnect)')
问题是目录是正确的,我什至可以 运行
cd "C:\Program Files\Teradata\Client\14.10\ODBC Driver for Teradata nt-x8664\Lib\"
从 msys2 中运行,它工作正常并且将该目录识别为有效目录并且它包含一个名为 tdata32.dll 的文件。使用 winpty python myprogram.py
也没有解决这个问题。
那么,为什么我的系统找不到这个驱动程序目录,而只有当我从 msys2 运行宁 python 程序时才找到?
我怀疑 tdata32.dll 依赖于其他 DLL,并且找不到其中一个,因为当您从 MSYS2 运行 Python 时它不在 PATH 上。
尝试添加一行 Python 代码以在两个环境中打印 PATH 环境变量的内容以检查问题。
您还可以使用 Dependency Walker 查看 tdata32.dll 依赖的 DLL。