【发布时间】: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 未能正确初始化
无法帮助自己使用这样的链接:
我在浏览器中打开了数百个标签,我想我已经搜索了整个互联网。
我决定尝试在服务器上安装 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位包……明天上班的时候一定会检查的。感谢您的提示。