2012-01-03 91 views
0

我試圖將模塊導入python,但有困難。儘管目錄出現在路徑中導入python模塊時遇到問題

我已經定義了包含C:\MyModules的環境變量PYTHONPATH。

當我問到有關路徑的問題時,我從Python 2.7中獲得以下內容。

>>> import sys 
>>> sys.path 
['', 'C:\\MyModules', 'C:\\Python27\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages'] 

C:\MyModules包含模塊foo.pyd。我知道foo.pyd是一個工作模塊,因爲它適用於其他計算機。

當我嘗試導入FOO,出現這種情況:

>>> import foo 
Traceback (most recent call last): 
    File "<string>", line 1, in <fragment> 
ImportError: DLL load failed: The specified module could not be found. 

什麼是這可能發生的可能原因是什麼?

+1

你很可能錯過了一些第三方依賴項。 – 2012-01-03 12:23:28

+0

由於在foo.pyd取決於我沒有安裝在我的電腦上的程序? – Derek 2012-01-03 12:25:12

+3

運行它:http://www.dependencywalker.com/ – 2012-01-03 12:25:34

回答

1

您錯過了依賴關係,請通過Dependency Walker運行它。

至於你在評論中的問題。我只能假設它試圖導入的模塊是用C編寫的,這影響了Python的回溯。

決定將此作爲回答提交

+0

是的,它是用C++編寫的,很好猜!我感到驚訝的是,Python並沒有抱怨它的回溯無法正常工作,或者沿着這些方向行事。它讓我想知道爲什麼python找不到這個模塊。 – Derek 2012-01-03 13:36:20

+1

不要混淆python模塊和未找到的模塊 - 哪個模塊是第三方依賴模塊。 foo.pyd被發現是正確的,但在加載foo.pyd時找不到它所依賴的模塊。 – Glider 2012-01-03 13:59:39

+0

好吧,所以'DLL加載失敗:'是說它找到了DLL,但是加載失敗了? 「指定的模塊」是DLL指定的模塊,而不是我說'import foo'時指定的模塊?這更有意義。謝謝。 – Derek 2012-01-03 15:10:51