使用 jpype 在 Python 中启动 JVM 时遇到困难
Difficulties starting JVM in Python using jpype
我最近一直在使用 jpype 与一些使用 python 的 java 代码集成,并且没有遇到任何实际问题。我现在正尝试在新系统上设置我的堆栈,但 运行 遇到了困难。
我是运行32位Python3.6.5和32位oracleJava1.8更新171.Python和jpype已经用conda安装好了( conda create -n venv -c conda-forge python jpype1 arrow
),以及
jpype.getDefaultJVMPath()
returns 预期路径 (C:\Program Files (x86)\Java\jre1.8.0_171\bin\client\jvm.dll
),但是会引发异常,指出找不到模块。以下 python 控制台的输出。
Python 3.6.5 | packaged by conda-forge | (default, Apr 6 2018, 16:13:16) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import jpype
>>> import os
>>> jpype.__version__
'0.6.3'
>>> jvm_path=jpype.getDefaultJVMPath()
>>> jvm_path
'C:\Program Files (x86)\Java\jre1.8.0_171\bin\client\jvm.dll'
>>> os.path.exists(jvm_path)
True
>>> jpype.startJVM(jvm_path)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\User\AppData\Local\conda\conda\envs\venv\lib\site-packages\jpype\_core.py", line 70, in startJVM
_jpype.startup(jvm, tuple(args), True)
RuntimeError: Unable to load DLL [C:\Program Files (x86)\Java\jre1.8.0_171\bin\client\jvm.dll], error = The specified module could not be found.
at native\common\include\jp_platform_win32.h:58
>>>
我错过了什么and/or这里做错了什么?
在挖掘我一直在研究的 3 个 windows 系统之间的差异时(2 个工作,这个不工作)我发现 Microsoft Visual C++ 2010 Redistributable Package (x86) 已经安装在前 2 个系统上系统,但不是表现出这种行为的系统。
安装 C++ 可再发行组件立即纠正了该问题。
我最近一直在使用 jpype 与一些使用 python 的 java 代码集成,并且没有遇到任何实际问题。我现在正尝试在新系统上设置我的堆栈,但 运行 遇到了困难。
我是运行32位Python3.6.5和32位oracleJava1.8更新171.Python和jpype已经用conda安装好了( conda create -n venv -c conda-forge python jpype1 arrow
),以及
jpype.getDefaultJVMPath()
returns 预期路径 (C:\Program Files (x86)\Java\jre1.8.0_171\bin\client\jvm.dll
),但是会引发异常,指出找不到模块。以下 python 控制台的输出。
Python 3.6.5 | packaged by conda-forge | (default, Apr 6 2018, 16:13:16) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import jpype
>>> import os
>>> jpype.__version__
'0.6.3'
>>> jvm_path=jpype.getDefaultJVMPath()
>>> jvm_path
'C:\Program Files (x86)\Java\jre1.8.0_171\bin\client\jvm.dll'
>>> os.path.exists(jvm_path)
True
>>> jpype.startJVM(jvm_path)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\User\AppData\Local\conda\conda\envs\venv\lib\site-packages\jpype\_core.py", line 70, in startJVM
_jpype.startup(jvm, tuple(args), True)
RuntimeError: Unable to load DLL [C:\Program Files (x86)\Java\jre1.8.0_171\bin\client\jvm.dll], error = The specified module could not be found.
at native\common\include\jp_platform_win32.h:58
>>>
我错过了什么and/or这里做错了什么?
在挖掘我一直在研究的 3 个 windows 系统之间的差异时(2 个工作,这个不工作)我发现 Microsoft Visual C++ 2010 Redistributable Package (x86) 已经安装在前 2 个系统上系统,但不是表现出这种行为的系统。
安装 C++ 可再发行组件立即纠正了该问题。