将 jpy 模块导入 python 时出现 Win32 DLL ImportError

Win32 DLL ImportError when importing jpy module into python

我正在尝试开始在我的系统上使用 snappy module。这是欧洲 Space 机构开发的卫星图像处理模块——至少还有两个其他 python 模块可用,它们的名称相同或相似,但我的库中没有。我按照 link 中给出的说明进行设置。但是,导入失败:

import snappy

给出:

Traceback (most recent call last):

  File "<ipython-input-10-44a854c9871f>", line 1, in <module>
    import snappy

  File "C:\Anaconda2\lib\site-packages\snappy\__init__.py", line 64, in <module>
    import jpy

ImportError: DLL load failed: %1 is not a valid Win32 application.

正如预期的那样,'import jpy' 给出了同样的错误。 我怀疑这与我的系统的某些部分依赖 32 位寻址而其他所有部分都依赖 64 位有关。但是,对我来说,一切似乎都是 64 位的。

我已经尝试了所有已接受的 Whosebug 问题答案,但均无济于事。

我的系统:

My shell(Spyder、IPython 或 JupyterQT)在启动时打印以下内容:

Python 2.7.13 |Anaconda custom (64-bit)| (default, Dec 19 2016, 13:29:36) [MSC v.1500 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

我是 运行:

Please note that you must use a 32-bit Python if your SNAP installation is 32-bit and accordingly use a 64-bit Python if your SNAP installation is 64-bit.

这将很难重现:

我遵循了大致相同的步骤(删除了 Python 2.7 [PythonX,Y] 的 32 位 Python 发行版并替换为 Anaconda2 4.3.0,安装snappy 从上面给出的 link 等)昨天在我的另一台机器上和 import snappy 工作完美。那台机器是 运行 SNAP Desktop 5.0 和 Windows 10.

重新安装更新版本的 SNAP Desktop 解决了问题。

详细:

  • 我在 'control panel' 中通过 'programs and features' 的常规路径卸载了 SNAP 4.0.0。
  • 我从 <python directory>/Lib/site-packages 中删除了 'snappy' 文件夹。
  • 我下载了 SNAP 5.0.0 安装程序。
  • 我 运行 安装程序并选择了为 Python.
  • 设置 SNAP 的选项
  • 我通过在 cmd.exe 中键入以下代码来安装 snappy 模块,就像我之前所做的那样,并且如问题中第一个 link 中所述.

    cd c:/users/--myusername--/.snap/snap-python/snappy c:/anaconda2/python.exe setup.py 安装 将 --myusername-- 替换为您的 windows 用户名,并记住您的 python 安装可能不在 c:/anaconda2.

瞧,import snappy 有效。如果您也遇到这个特殊问题,您可能还应该检查 help(snappy) 是否给出了预期的结果,以确保您没有安装另一个名为 snappy 的包。