安装Jpype库后,提示ImportError: DLL load failed: 找不到指定的模块

【问题现象】

Python版本为Python3.7. 通过pip安装Jpype1,能正常安装成功,但是在运行Jpype代码时,却报错了,报错内容为:ImportError: DLL load failed: 找不到指定的模块

安装Jpype库后,提示ImportError: DLL load failed: 找不到指定的模块_第1张图片

示例代码:

# _*_ coding:utf-8 _*_
import jpype

jvmPath = jpype.getDefaultJVMPath()       # 默认的JVM路径
print(jvmPath)
jpype.startJVM(jvmPath)
jpype.java.lang.System.out.println("hello world!")
jpype.java.lang.System.out.println("I hate you!")
jpype.shutdownJVM()

【定位思路】

通过查看_jpackage.py文件,发现的确未声明_jpype库

安装Jpype库后,提示ImportError: DLL load failed: 找不到指定的模块_第2张图片

 

【解决思路】

1、网上有博客说,可能是因为jpype未安装成功,因此通过pip uninstall jpype,然后重装的方式。

结果:失败,重新安装后在jpype文件夹下仍然没有_jpype.py文件

 

2、通过手动安装wheel包的方式

wheel包下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/

安装Jpype库后,提示ImportError: DLL load failed: 找不到指定的模块_第3张图片

把whl包放在site-packages路径下,通过pip install C:\python3\Lib\site-packages\jpype\XXXX.whl来安装。

结果:无论是0.7版本还是0.6版本都失败

【2019/12/30更新】在官网https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 下载JPype1-0.6.3-cp37-cp37m-win_amd64.whl 安装包。通过这种方式,我发现python3又可以安装成功了,真的神奇!

我的经过:在site-packages路径下直接安装whl包,程序会自动卸载之前版本,然后重新安装新的版本。然后我就这样成功了

 

3、更新pip

因为本人的pip版本不 是最新版本,网上有博客说更新下pip就能下载到正确的版本了。因此根据界面提示(python -m pip install --upgrade pip)进行了更新。

结果:依旧失败!

 

4、生成在jpype文件下,生成一个_jpype.py空脚本

结果:意料之中的失败!

 

5、有看到其他博客说,其实_jpype库是_jpype.cp37-win_amd64.pyd,只需要在系统变量path中加上pyd文件的路径即可 解决,

结果:从目前来看 ,这个解释是有道理的,但是我无论在path加路径(C:\python3\lib\site-packages)还是将pyd文件放在Jpype文件夹中都是失败的;包括将import _jpype改成import _jpype.cp37-win_amd64.pyd

6、最后想,如果Python3不行的话,要不要试试python2.7。结果成功了!我去!

不过在过程中,遇到一个问题:error: Microsoft Visual C++ 9.0 is required

安装Jpype库后,提示ImportError: DLL load failed: 找不到指定的模块_第4张图片

解决方法是下载个VCForPython27.msi 可以解决。当然关于Visual C++问题的解决,网上有很多方法,但我是通过这个安装包解决的。如果有需要的同学,可以私信我。
 

最终,花了2个多小时,解决了这么个小问题。

安装Jpype库后,提示ImportError: DLL load failed: 找不到指定的模块_第5张图片

你可能感兴趣的:(遇到的各类坑)