4

我希望在 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

4 回答 4

3

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

编辑 1(与 Gianni 进行评论交流后)

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

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

在此处输入图像描述

于 2013-03-13T00:41:04.960 回答
2

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

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

Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [ MSC v.1900 32 bit (Intel) ] on win32

在这里下载

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

于 2016-03-24T14:01:40.290 回答
1

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

于 2018-09-06T17:17:02.783 回答
0

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

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

在此处输入图像描述

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

然后它起作用了:)

于 2021-02-26T14:32:32.200 回答