2016-06-09 5 views
1

Мне нужно запустить Python с библиотекой pymssql для запроса SQL-сервера, и я потратил день на установку и компиляцию файлов в Windows.Установка pymssql на сервер Windows

Установка pymssql был очень болезненным, пока я разработал эту процедуру:

Я даже создал EXE-пакет, поэтому я не придется устанавливать все это на живой машине. Он работал нормально. Executable также работал на другой машине Windows.

Но, когда я попробовал его на сервере, он почему-то не работал. Ошибка не имеет смысла, и я начал плакать:

WindowsError: [Error -2146893795] Provider DLL failed to initialize correctly

не могли бы помочь мне со ссылками, как это:

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

У меня есть сотни вкладок открыто в браузере и I думаю, что я искал весь Интернет.

Я решил попробовать установить 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. 

Может ли кто-нибудь указать, где я поступил не так?

+0

ли pymssql скомпилированного 64 бита? – theB

+1

Ваш баннер Python показывает, что он 64-битный, поэтому вы включили папку OpenBSL 'bin64' (а не' bin') на свой PATH, верно? –

+1

Попробуйте захватить 64-битный openssl. Я использовал этот сайт для своих установок. https://slproweb.com/products/Win32OpenSSL.html –

ответ

0

При настройке pymssql версии 2.1.2 и более поздних версий на Windows, будьте осторожны, чтобы гарантировать, что:

  1. Вы скачать сборки FreeTDS и OpenSSL, которые соответствуют версии Python (например, 2,7, 3,4 , 3.5, ...), которые вы используете.

  2. Вы загружаете сборку FreeTDS с той же «битностью» Python, что вы используете (32-разрядная или 64-разрядная версия).

  3. При добавлении папки в Windows, PATH, вы должны

    я. укажите папки, в которых находятся DLL-файлы, и

    ii. выберите папку OpenSSL, которая соответствует «битте» Python, которую вы используете: bin для 32-разрядной версии, или bin64 для 64-разрядной версии.

Для получения дополнительной информации см смежного вопрос:

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