簡體   English   中英

嘗試在 Windows 上導入 pymssql 時出現“ImportError: DLL load failed”

[英]“ImportError: DLL load failed” when trying to import pymssql on Windows

我正在嘗試使用這里的示例代碼:

http://www.pymssql.org/en/latest/pymssql_examples.html

我使用pip安裝了 pymmsql 模塊。 我也在 site-packages 文件夾中看到了

C:\Python27\Lib\site-packages\pymmsql.pyd

但是,當我執行代碼時,出現以下錯誤:

Traceback (most recent call last):
File "C:\Android\android_workspace\pythonProject\test.py", line 2, in <module>
import pymssql
ImportError: DLL load failed: The specified module could not be found.

我錯過了什么?

更新

由於用戶社區對 2.1.2 更改的負面反饋,pymssql 2.1.3 及更高版本已恢復讓pip install pymssql分發預編譯的輪文件,這些文件靜態鏈接到 FreeTDS 而不支持 SSL。

因此,如果您需要 SSL 支持,那么您仍然不能簡單地執行pip install pymssql 對於 Windows,您需要遵循以下過程,或者對於 Linux,您需要使用類似此問題的答案中描述的過程從源代碼構建 pymssql(可能還有 FreeTDS)


pymssql 的 2.1.2 版對其在 Windows 上的設置方式進行了重大更改。 以前的版本是通過靜態鏈接的FreeTDS 分發的,所以我們需要做的就是安裝 pymssql(例如pip install pymssql )並且它“正常工作”,但不支持 SSL 連接。

從 pymssql 2.1.2 版開始,pymssql 與 Windows 上的 FreeTDS動態鏈接,並且不附帶 FreeTDS(和 OpenSSL,如果需要)的必需組件。 我們仍然可以使用pip install pymssql安裝 pymssql 本身,但這可能已經不夠了。 如果我們還沒有在 Windows 機器上安裝 FreeTDS,那么我們必須自己下載組件。

下載鏈接可以在 pymssql 文檔頁面上找到:

pymssql-Docs-FreeTDS-安裝-Windows

如果不需要SSL連接,然后我們只需要下載freetds的組件,並確保“LIB-nossl”文件夾中的內容可以通過搜索窗口中找不到PATH

如果需要 SSL 連接那么我們必須下載 FreeTDS 和 OpenSSL 組件並確保可以找到適當的 DLL(在 FreeTDS 的“lib”文件夾中,對於 OpenSSL 在“bin”或“bin64”文件夾中)可以找到通過搜索 Windows PATH

請注意,這些更改會影響 pymssql 的新安裝和升級。 據報道,簡單地將 pymssql 從 2.1.1 版升級到 2.1.2 版將破壞 Windows 上的 pymssql,直到下載 FreeTDS(和 OpenSSL,如果需要)所需的組件。

我有這個問題。 對我來說最簡單的解決方案是卸載 2.1.2 然后安裝 2.1.1:

pip卸載pymssql

pip 安裝“pymssql == 2.1.1”

現在我建議從這里下載你需要的版本https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql然后通過以下步驟安裝。

  1. 下載要放在磁盤上的版本,可以是 Downloads 或您想要的任何地方。 我下載了 pymssql-2.1.4-cp38-cp38-win_amd64.whl 因為我在 Windows 10 64 位上使用 Python 3.8。
  2. 導航到您下載或移動文件的目錄...
  3. pip install <pymssql 文件名>

我不需要安裝任何額外的東西,開箱即用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM