安裝Jpype庫後,提示ImportError: DLL load failed: 找不到指定的模塊

【問題現象】

Python版本爲Python3.7. 通過pip安裝Jpype1,能正常安裝成功,但是在運行Jpype代碼時,卻報錯了,報錯內容爲:ImportError: DLL load failed: 找不到指定的模塊

示例代碼:

# _*_ 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庫

 

【解決思路】

1、網上有博客說,可能是因爲jpype未安裝成功,因此通過pip uninstall jpype,然後重裝的方式。

結果:失敗,重新安裝後在jpype文件夾下仍然沒有_jpype.py文件

 

2、通過手動安裝wheel包的方式

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

把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

解決方法是下載個VCForPython27.msi 可以解決。當然關於Visual C++問題的解決,網上有很多方法,但我是通過這個安裝包解決的。如果有需要的同學,可以私信我。
 

最終,花了2個多小時,解決了這麼個小問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章