2013-03-13 1764 views
4

我希望在窗口64位上的Python 2.7中導入liblas模塊。如果我用IDLE(Python GUI)導入模塊,我沒有問題。Windows錯誤:[錯誤193]%1在Python中不是有效的Win32應用程序

如果我使用PyScripter「PyScripter-v2.5.3-x64-Setup.exe」,我收到此錯誤消息。

>>> import liblas 
Traceback (most recent call last): 
    File "<interactive input>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\liblas\__init__.py", line 2, in <module> 
    from core import get_version 
    File "C:\Python27\lib\site-packages\liblas\core.py", line 138, in <module> 
    las = ctypes.CDLL(os.path.join(local_dlls, lib_name)) 
    File "C:\Python27\Lib\ctypes\__init__.py", line 365, in __init__ 
    self._handle = _dlopen(self._name, mode) 
WindowsError: [Error 193] %1 is not a valid Win32 application 

我在PyScripter使用liblas很多次都沒有問題,現在我可以加載所有的標準模塊(如:numpy的,GDAL等),但今晚(我需要完成的分析!)我有這個不便。

+0

拳頭我一直有問題windowsError。其次,它不是liblas的問題,而是一個Pyscript問題。我可以在沒有問題的情況下將Python的IDLE加入Python的IDLE中(正如我寫的)。但感謝您的嘗試 – 2013-03-13 21:34:07

回答

3

請務必安裝Python 2.7 64B版:)或者即使您64b上OS工作,用86 PyScripter的(AKA 32B)版

編輯1(以下意見交換W /詹尼)

每個人都應該檢查他/她的整個 Python進程從同一個實體「組成」中的32B/64B的意義構建(例如,如果你的Python解釋器是32B一個,那麼就必須使用C型從C DLL來被編譯爲32b dll的Python擴展)。

在我們的例子(liblas)一個應該去C:\Python27\lib\site-packages\liblas,找到擴展DLL,看看它的類型通過dumpbin,這裏是展示一些圖片:

enter image description here

+0

我非常確定Python 2.7.3 64位。如果我安裝PyScripter-v2.5.3-Setup.exe我無法運行Python – 2013-03-13 00:51:45

+0

@Gianni,請看看http://stackoverflow.com/questions/5538671/python-call-to-external-program-results-in -error-193-1-is-a-valid-win32-a,我認爲libals後端dll是32b的,所以也許使用Python 32b會緩解我在Win64中想到的問題 – 2013-03-13 00:59:21

+0

,64位進程必須都是64位 – 2013-03-13 01:08:41

1

這個錯誤也可能因爲引起Python試圖運行的DLL已經被編譯在新版本的C++上。確保您正在運行最新版本的Microsoft C++ Distribution。

你可以看到你在Python終端窗口中運行的版本(以粗體突出)

的Python 3.5.1(V3.5.1:37a07cee5969,2015年12月6日,1點38分48秒)[MSC v.1900 32位(英特爾)]在Win32

這裏下載

https://www.microsoft.com/en-us/download/details.aspx?id=48145

相關問題