在 Windows 服务器上安装 pymssql [重复]

Posted

技术标签:

【中文标题】在 Windows 服务器上安装 pymssql [重复]【英文标题】:Installing pymssql on Windows server [duplicate] 【发布时间】:2016-06-09 13:55:25 【问题描述】:

我需要使用 pymssql 库运行 Python 来查询 SQL 服务器,我花了一天时间在 Windows 上安装和编译东西。

pymssql的安装非常痛苦,直到我开发了这个程序:

安装python 更新点子 从http://www.npcglib.org/~stathis/blog/precompiled-openssl/下载OpenSSL 将 bin 文件夹添加到 Path 环境变量中 从https://github.com/ramiro/freetds/releases下载FreeTDS 将 lib 文件夹添加到 Path 环境变量中 pip 安装 pymssql

我什至创建了 .exe 包,所以我不必在现场机器上安装所有这些。它工作正常。可执行文件也可以在其他一些 Windows 机器上运行。

但是,当我在服务器上尝试它时,由于某种原因它不起作用。错误没有意义,我开始哭了:

WindowsError: [Error -2146893795] Provider DLL 未能正确初始化

无法帮助自己使用这样的链接:

"Windows Error: provider DLL failed to initialize correctly" on import of cgi module in frozen wxpython app

我在浏览器中打开了数百个标签,我想我已经搜索了整个互联网。

我决定尝试在服务器上安装 Python 和 pymssql,我想避免这种情况,但让我们开始吧。当然,我的挫败感还不止于此。安装成功后还是无法加载pymssql:

C:\Users\Me>C:\Python27\python.exe
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:40:30) [MSC v.1500 64 bit (
AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> import sys
>>> import pymssql
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed: %1 is not a valid Win32 application.

谁能指出我哪里出错了?

【问题讨论】:

pymssql编译成64位了吗? 您的 Python 横幅显示它是 64 位的,因此您在 PATH 中包含了 OpenSSL bin64(不是 bin)文件夹,对吧? 尝试抓取一个 64 位的 openssl。我已经使用这个站点进行安装。 slproweb.com/products/Win32OpenSSL.html @theB 我使用 pip 安装,使用 64 位 python 安装 @GordThompson 我想我不记得看到过 64 位文件夹。我下载了openssl的64位包……明天上班的时候一定会检查的。感谢您的提示。 【参考方案1】:

在 Windows 上设置 pymssql 版本 2.1.2 及更高版本时,请注意确保:

    您下载与您正在使用的 Python 版本(例如 2.7、3.4、3.5...)相对应的 FreeTDS 和 OpenSSL 构建。

    您下载的 FreeTDS 版本与您使用的 Python“位数”相同(32 位或 64 位)。

    向WindowsPATH添加文件夹时,必须

    我。指定所需的 DLL 文件所在的文件夹,并且

    二。选择与您正在使用的 Python 的“位数”相对应的 OpenSSL 文件夹:bin 用于 32 位,bin64 用于 64 位。

有关更多信息,请参阅相关问题:

"ImportError: DLL load failed" when trying to import pymssql on Windows

【讨论】:

以上是关于在 Windows 服务器上安装 pymssql [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 10 上安装 pymssql 时出错

在 Windows 7 中导入 pymssql Unicode DecodeError

pymssql 在 Azure/Windows 上返回的字符集与在 Mac 上不同

Pymssql 程序可以在 mac 上运行,但不能在 windows 上运行

无法在 Manjaro 上安装 pymssql - 编译问题?

麻烦在 MacOS Mojave 上安装 pymssql