" ImportError:DLL加载失败"当试图在Windows上导入pymssql时

时间:2016-04-01 09:30:40

标签: 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.

我错过了什么?

3 个答案:

答案 0 :(得分:4)

<强>更新

由于用户社区对2.1.2更改的负面反馈,pymssql 2.1.3及更高版本已恢复为pip install pymssql分发预编译的轮文件,这些文件在没有SSL支持的情况下静态链接到FreeTDS。 / p>

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

pymssql的2.1.2版本引入了在Windows上设置方式的重大变化。以前的版本是与FreeTDS 静态链接一起发布的,所以我们需要做的就是安装pymssql(例如,pip install pymssql)并且#34;刚刚工作&#34;,但SSL连接不是支撑。

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

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

pymssql - Docs - FreeTDS - Installation - Windows

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

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

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

答案 1 :(得分:2)

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

pip uninstall pymssql

pip install&#34; pymssql == 2.1.1&#34;

答案 2 :(得分:0)

现在,我建议您只从此处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安装

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