2013-03-13 900 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

相关问题