2015-05-30 52 views
0

我使用python 2.7使用Python對於.NET,我複製從Python2.7所有必需的目錄到我的應用程序目錄 當我嘗試導入的ctypes,在交互式shellEmbded Python的進口ctypes的失敗

import ctypes 

錯誤是

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\TesetPyNet\bin\Debug\lib\ctypes\__init__.py", line 10, in <module> 
    from _ctypes import Union, Structure, Array 
ImportError: DLL load failed: The specified module could not be found. 

什麼我問的是有任何離開的路徑設置到DLL文件夾。

注:當我包埋蟒蛇3.4.3到我的C#應用​​程序,並複製的蟒蛇運行時的目錄到我的應用程序目錄,它好工作與進口ctypes的,即使是在OS與Python

沒有已安裝的版本
+0

失敗者不僅是當導入ctypes時,但是當我導入任何模塊需要Dll文件夾中的內置模塊 – Aladdin

+0

它正在尋找擴展模塊' _ctypes.pyd',通常在'Python27 \ DLLs'中。 – eryksun

+0

奇怪的是,它真的在Python \ DLLs – Aladdin

回答

0

一些挖和檢查結束後,_ctypes.pyd只不過是OS特定的(動態鏈接library'for「的UNIX像」 windows'共享對象)

因此,當我檢查它的依賴性,不像python27.dll那依賴於msvcr100.dll。這取決於msvcr90.dll

所以解決方案是隻複製msvcr90.dll中到應用程序的工作目錄或DLLs目錄,旁邊_ctypes.pyd

+0

官方python27.dll鏈接到msvcr90.dll。你是否使用VS 2010自己構建python27.dll,如果是的話,爲什麼你還沒有構建擴展模塊? – eryksun

+0

是的,它可能是這樣的,我不得不建立python27.dll來追蹤一些致命錯誤,當在c#應用程序中運行python代碼,所以我感到困惑python27.dll的2個副本 – Aladdin