WindowsError:[错误193]%1不是Python中的有效Win32应用程序

时间:2013-03-13 00:13:49

标签: python 64-bit runtime-error pyscripter

我希望在64位窗口的Python 2.7中导入liblas模块。如果我使用IDLE(Python GUI)导入模块,我没有问题。

如果我使用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等),但今晚(我需要完成分析!!!)我有这样的不便。

4 个答案:

答案 0 :(得分:3)

请确保使用Python 2.7 64b版本:)或者即使您使用的是64b操作系统,也请使用PyScripter的x86(AKA 32b)版本

编辑1(与Gianni交换评论后)

在32b / 64b版本的意义上,应该从相同的实体验证他/她的整个 Python进程“组成”(例如,如果你的Python解释器是32b,那么它必须使用C类型来来自C dll Python扩展,编译为32b dlls)。

在我们的示例(liblas)中,应该转到C:\Python27\lib\site-packages\liblas,找到扩展名dll并通过dumpbin查看其类型,以下是一些示例图片:

enter image description here

答案 1 :(得分:1)

也可能导致此错误,因为Python尝试运行的DLL已在较新版本的C ++上编译。确保您运行的是最新版本的Microsoft C ++ Distribution。

您可以在Python终端窗口中看到您正在运行的版本(以粗体突出显示)

Python 3.5.1(v3.5.1:37a07cee5969,2015年12月6日,01:38:48)[ MSC v.1900 32位(英特尔)]在win32上

在此下载

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

答案 2 :(得分:0)

您可能正在使用64位Python。 您应该改为安装 32位版本。

答案 3 :(得分:0)

如果您也遇到此错误,请查看您的 python.exe 文件。

就我而言,它已损坏,如下所示:

enter image description here

所以我从另一个 venv 复制并重新安装了依赖项。

然后它起作用了:)

相关问题