在 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 中包含了 OpenSSLbin64
(不是 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 7 中导入 pymssql Unicode DecodeError
pymssql 在 Azure/Windows 上返回的字符集与在 Mac 上不同
Pymssql 程序可以在 mac 上运行,但不能在 windows 上运行