Проблема с установкой pymssql в Windows

Я не могу найти отличную поддержку поддержки установки pymssql в Windows. Я пытаюсь подключиться к корпоративной базе данных через оболочку python другого сотрудника. Эта оболочка требует моей установки pymssql. В RTFM нет очень подробных инструкций по процессу установки. FreeTDS и OpenSSL.

Шаги по установке

Все загруженные файлы (FreeTDS и OpenSSL) взяты из упомянутой выше ссылки RTFM. Есть упоминание о добавлении обеих загрузок в папку C:\Program Files и добавлении двоичных файлов в систему PATH, поэтому я сделал следующее:

FreeTDS

  1. Скачал FreeTDS >> создал каталог C:\Program Files (x86)\FreeTDS >> скопировал/вставил содержимое загрузки FreeTDS в каталог C:\Program Files (x86)\FreeTDS >> добавил C:\Program Files (x86)\ FreeTDS в PATH моей системы

Содержимое загрузки FreeTDS:

\bin
    \bsqldb.exe
    \bsqldb.exe.manifest
    \bsqlodbc.exe
    ...
    \tsql.exe
\include
    \bkpublic.h
    \cspublic.h
    \cstypes.h
    ...
    \tds_sysdep_public.h
\lib
    \static
        \db-lib.lib
        \iconv.lib
        \libct.lib
        \replacements.lib
        \tds.lib
    \ct.dll
    \ct.dll.manifest
    ...
    \tsodbc.lib
\lib-nossl
(same as \lib)

OpenSSL

  1. Скачанный OpenSSL >> создал каталог C:\Program Files (x86)\OpenSSL >> скопировал/вставил содержимое загрузки OpenSSL в каталог C:\Program Files (x86)\OpenSSL >> добавил C:\Program Files (x86)\ OpenSSL в PATH моей системы

Содержимое загрузки OpenSSL:

\HashInfo.txt
\libeay32.dll
\OpenSSL License.txt
\openssl.exe
\ReadMe.txt
\ssleay32.dll

PYMSSQL

  1. Установите pymssql через pip: python -m pip install pymssql >> затем проверьте статус установки:

Открытая среда Python

  • запустить: import pymssql
  • получить: ImportError: DLL load failed: The specified module could not be found.

Супер разочаровывает. Очень ценю любую помощь здесь!

(к сожалению, почти все, кого я знаю, запускают pymssql из Linux, и у них нет этой проблемы)


person M. Pierce    schedule 22.05.2016    source источник


Ответы (2)


Как упоминалось (кратко) в цитируемой вами документации pymssql, а также в моем соответствующем ответе здесь, ваша Windows PATH должна включать папки, в которых находятся DLL-файлы, а не базовые папки для FreeTDS (и OpenSSL, если требуется).

Итак, на моей тестовой машине под управлением 32-битной Windows мой PATH должен был включать папку «lib-nossl» для FreeTDS...

C:\Users\Gord\Downloads\freetds-v0.95.83-win-x86-vs2015\lib-nossl

... чтобы я мог использовать pymssql 2.1.2 с Python 3.5.1 для установки незашифрованного соединения с моим SQL Server.

person Gord Thompson    schedule 23.05.2016
comment
Получил работу, спасибо! Я исправил каталоги пути, убедился, что у меня правильные версии freetds и openssl, затем pip установил pymssql. Примечание. Разрядная версия операционной системы, версия выпуска и источники программного обеспечения — все это важные факторы, которые нельзя упускать из виду. - person M. Pierce; 06.06.2016

В настоящее время я рекомендую просто скачать нужную вам версию отсюда https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql, а затем выполните установку, выполнив следующие шаги.

  1. Загрузите версию, которую хотите разместить на диске, можно загрузить или где угодно. Я скачал pymssql-2.1.4-cp38-cp38-win_amd64.whl, потому что использую Python 3.8 в 64-разрядной версии Windows 10.
  2. Перейдите в каталог, в который вы скачали или переместите файл...
  3. pip install ‹имя файла pymssql›

Ничего дополнительно устанавливать не пришлось, все заработало из коробки.

person harmonickey    schedule 04.05.2020