将 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.
我是 运行:
- Windows 7 专业版,64 位
- SNAP Desktop 4.0.0,64位(snappy模块依赖的卫星图像处理应用)
- 编程环境:Anaconda2 4.3.0, 64-bit with Python 2.7.13
- 我删除了 ArcMap 附带的 Python 2.7 的 32 位发行版。我在我的系统上再也找不到它的踪迹了,这很好(如果是的话)。
我不确定如何确定我拥有的 snappy 模块是为 32 位还是 64 位架构编写的,但是 the development website 声明:
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
的包。
我正在尝试开始在我的系统上使用 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.
我是 运行:
- Windows 7 专业版,64 位
- SNAP Desktop 4.0.0,64位(snappy模块依赖的卫星图像处理应用)
- 编程环境:Anaconda2 4.3.0, 64-bit with Python 2.7.13
- 我删除了 ArcMap 附带的 Python 2.7 的 32 位发行版。我在我的系统上再也找不到它的踪迹了,这很好(如果是的话)。 我不确定如何确定我拥有的 snappy 模块是为 32 位还是 64 位架构编写的,但是 the development website 声明:
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
的包。