【问题标题】:"ImportError: DLL load failed" when trying to import pymssql on Windows尝试在 Windows 上导入 pymssql 时出现“ImportError:DLL 加载失败”
【发布时间】:2016-04-01 09:30:39
【问题描述】:

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

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.

我错过了什么?

【问题讨论】:

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


【解决方案1】:

更新

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

因此,如果您需要 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 的新安装和升级。据报道,在下载所需的 FreeTDS(和 OpenSSL,如果需要)组件之前,只需将 pymssql 从 2.1.1 版升级到 2.1.2 版就会破坏 Windows 上的 pymssql。

【讨论】:

    【解决方案2】:

    我遇到了这个问题。对我来说最简单的解决方案就是卸载 2.1.2 然后安装 2.1.1:

    pip 卸载 pymssql

    pip install "pymssql==2.1.1"

    【讨论】:

      【解决方案3】:

      现在我建议您从这里https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql 下载您需要的版本,然后按照以下步骤安装。

      1. 下载要放在磁盘上的版本,可以是下载或任何你想要的。我下载了 pymssql-2.1.4-cp38-cp38-win_amd64.whl 因为我在 Windows 10 64 位上使用 Python 3.8。
      2. 导航到您下载或移动文件的目录...
      3. pip install

      我不需要安装任何额外的东西,开箱即用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-17
        • 2020-11-19
        • 2019-05-08
        • 2017-07-03
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        相关资源
        最近更新 更多