python - 尝试在 Windows 上导入 pymssql 时出现 "ImportError: DLL load failed"

标签 python python-3.x python-2.x pymssql

我正在尝试使用此处的示例代码:

http://www.pymssql.org/en/latest/pymssql_examples.html

我使用 pip 安装了 pymmsql 模块。我也在 site-packages 文件夹中看到它

C:\Python27\Lib\site-packages\pymmsql.pyd

但是,当我执行代码时,出现以下错误:

Traceback (most recent call last):
File "C:\Android\android_workspace\pythonProject\test.py", line 2, in <module>
import pymssql
ImportError: DLL load failed: The specified module could not be found.

我错过了什么?

最佳答案

更新

由于用户社区对 2.1.2 更改的负面反馈,pymssql 2.1.3 及更高版本已恢复为让 pip install pymssql 分发静态链接到 FreeTDS 的预编译轮文件不支持 SSL。

因此,如果您需要 SSL 支持,那么您仍然不能简单地执行 pip install pymssql。对于 Windows,您需要遵循以下过程,或者对于 Linux,您需要使用类似于 this question 的答案中描述的过程从源代码构建 pymssql(可能还有 FreeTDS)。


pymssql 2.1.2 版在需要在 Windows 上设置的方式上引入了重大变化。以前的版本随 FreeTDS 静态链接一起分发,所以我们需要做的就是安装 pymssql(例如,pip install pymssql)并且它“正常工作”,但 SSL 连接不是支持。

从 pymssql 版本 2.1.2 开始,pymssql 与 Windows 上的 FreeTDS 动态链接,并且不附带 FreeTDS 的必需组件(如果需要,还包括 OpenSSL)。我们仍然可以使用 pip install pymssql 安装 pymssql 本身,但这可能已经不够了。如果我们还没有在 Windows 机器上安装 FreeTDS,那么我们必须自己下载组件。

可以在此处的 pymssql 文档页面上找到下载链接:

pymssql - Docs - FreeTDS - Installation - Windows .

如果不需要 SSL 连接,那么我们只需要下载 FreeTDS 组件并确保可以通过搜索 Windows PATH 找到“lib-nossl”文件夹的内容

如果 需要 SSL 连接,那么我们必须同时下载 FreeTDS 和 OpenSSL 组件,并确保适当的 DLL(在 FreeTDS 的“lib”文件夹中,以及在“bin”或OpenSSL 的“bin64”文件夹)可以通过搜索 Windows PATH 找到。

请注意,这些更改会影响 pymssql 的新安装和升级。据报道,只需将 pymssql 从版本 2.1.1 升级到版本 2.1.2 就会破坏 Windows 上的 pymssql,直到下载所需的 FreeTDS(和 OpenSSL,如果需要)组件。

关于python - 尝试在 Windows 上导入 pymssql 时出现 "ImportError: DLL load failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352728/

相关文章:

python - 在终端中执行带有多个参数的python函数

python - python中多变量的牛顿法(方程组)

android - 考虑移动设备设计 Flask 应用程序?

python - 为什么我的 gitlab CI 中出现错误,但没有找到 Pip?

python - 从 0 开始自动编号的枚举

python - 从 docx 文件中提取特定字体的文本

python - 在 msys2 mingw-64 中安装 python aiortc 模块

python - 使用类似维度转换行值

python - 如何为 PyCharm 分配目录

python - 如何在 Python C-API 中动态创建派生类型