簡體   English   中英

python無法在64位Windows上加載64位DLL

[英]python failed to load 64 bit DLL on a 64 bit Windows

我正在測試一個稱為基礎DLL庫的小型python程序。

我的系統是64位Windows7。python可執行文件是隨Anaconda虛擬環境啟動的64位Anaconda3附帶的文件。

首先引起我注意的是這段python代碼

sys.platform

即使對於AMD64 Arch也返回win32,“ platform.machine()”似乎返回了更准確的結果。

Python 3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)] on win32

我確實找到了一些討論該問題的SO帖子,例如this

然后在嘗試加載DLL文件時程序失敗:

windll.LoadLibrary(realpath(join(_module_location, 'dlh', 'win64', 'I_cant_tell_you_the_name.dll')))

錯誤信息:

OSError: [WinError 193] %1 is not a valid Win32 application

問題是,為什么python無法在64位環境中加載64位DLL? 在我看來,編譯器堅持改為加載32位DLL。 這是為什么? 還是Anaconda創建的venv僅支持32位代碼?

不幸的是,我沒有用於測試的32位DLL,否則我想看看效果如何。

您可以使用Dependency Walker來檢查正在發生的事情。 它具有可跟蹤所有庫加載的配置文件功能。

它可能會向您顯示一些可能的問題:

  1. Python是32位的,因為執行了錯誤的版本
  2. DLL是32位的
  3. 該DLL依賴於不在路徑中的其他DLL

暫無
暫無

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

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