我希望在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等),但今晚(我需要完成分析!!!)我有这样的不便。
答案 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查看其类型,以下是一些示例图片:
答案 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)