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

问题描述 投票:4回答:3

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

python 64-bit runtime-error pyscripter
3个回答
3
投票

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

编辑1(以下评论与Gianni交流)

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

在我们的例子(liblas)中,应该去C:\Python27\lib\site-packages\liblas,找到扩展dll并通过dumpbin查看它的类型,这里有一些图片用于演示:


1
投票

此错误也可能是由于Python尝试运行的DLL已在较新版本的C ++上编译而引起的。确保您运行的是最新版本的Microsoft C ++ Distribution。

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

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

在这里下载

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.