Трудности запуска JVM в Python с использованием jpype - PullRequest
0 голосов
/ 08 мая 2018

В последнее время я использую jpype для интеграции с некоторым кодом Java, используя python, и у меня не было никаких реальных проблем. Сейчас я пытаюсь настроить свой стек в новой системе и сталкиваюсь с трудностями.

Я использую 32-разрядную версию Python 3.6.5 и 32-разрядную версию Oracle 1.8 для Oracle 181. Python и jpype были установлены с использованием conda (conda create -n venv -c conda-forge python jpype1 arrow) и

jpype.getDefaultJVMPath() возвращает ожидаемый путь (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
>>>

Что я здесь упускаю и / или делаю неправильно?

1 Ответ

0 голосов
/ 08 мая 2018

Изучая различия между тремя системами Windows, над которыми я работал (две из которых работали, а эта не работала), я обнаружил, что установлен Microsoft Visual C ++ 2010 Распространяемый пакет (x86) на предыдущих 2 системах, но не той, которая демонстрирует такое поведение.

Установка распространяемого C ++ немедленно исправила проблему.

...