2015-08-17 12 views
9
>>> import boilerpipe 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Anaconda\lib\site-packages\boilerpipe\__init__.py", line 10, in <module> 
    jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % os.pathsep.join(jars)) 
    File "C:\Anaconda\lib\site-packages\jpype\_core.py", line 50, in startJVM 
    _jpype.startup(jvm, tuple(args), True) 
RuntimeError: Unable to load DLL [C:\Program Files\Java\jre7\bin\client\jvm.dll], error = The specified module could not be found. 
at native\common\include\jp_platform_win32.h:58 

Tried: Ponowna JVMDostęp JVM z pytona

>> import ctypes 
>> import os 
>> os.chdir(r"<path to Java bin client folder>") 
>> ctypes.CDLL("jvm.dll") 
Still unable to fix 

Edit: Wypróbowywany poniższy kod, nadal tkwi:

from py4j.java_gateway import JavaGateway gateway = JavaGateway() To daje ten sam błąd, jak wcześniej.

+1

Ładowanie JVM z biblioteki DLL jest bardzo trudne, nawet z C. Proponuję załadować JVM za pomocą 'java' z wiersza poleceń lub użyć Jython, który działa już w JVM. –

+0

@PeterLawrey Dzięki za komentarz! Nie jestem świadomy "Jython". Czy powinienem go zainstalować i ponownie uruchomić skrypt Pythona? Czy jest coś więcej? –

+0

Jython uruchamia skrypty w języku Python wewnątrz JVM. Zakładam, że jest w tym więcej, ale jest to zaprojektowane i wspierane do pracy z JVM, w której działa. –

Odpowiedz

3

Sprawdź proszę!

  1. Daj prawdziwą drogę ("C:\\Program Files\\Java\\jre7\\bin\client\\jvm.dll")
  2. zobacz wszystkich 32 lub 64 bit (moja oferta zawsze używać 32bit Anaconda, JRE7, Python itp)
  3. Install pywin32 (oczywiście python2.7.9)
  4. zezwolić na jvm.dll (można uruchomić)
  5. Mimo wszystko jest ok, spróbuj: import ctypesctypes.CDLL('C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll')

** * Może nie można rzucić haka niektórych wersji java i użyłem jre-7u55-windows-i586.exe

Mam nadzieję, że pomocne! Z poważaniem !

Prace nad winem (brak błędów): enter image description here

+3

Dzięki! Dostaję ten błąd na szczęście. '>>> ctypes.CDLL ('C: \ Program Files (x86) \ Java \ jre1.8.0_40 \ bin \ client \ jvm.dll') Traceback (ostatnie ostatnie połączenie): Plik" ", wiersz 1, w Plik "C: \ Anaconda \ lib \ ctypes \ __ init__.py", linia 365, w __init__ self._handle = _dlopen (self._name, mode) WindowsError: [Błąd 126] Określony moduł mógłby nie można znaleźć " –

3

sekretarki, ponieważ nie mam wystarczająco dużo rep do komentowania; Spróbuj użyć nieprzetworzonych ciągów znaków zamiast normalnych, pozwalając na "\ x" ucieczkę. Wypróbuj:

>>> ctypes.CDLL(r'C:\Program Files (x86)\Java\jre1.8.0_40\bin\client\jvm.dll') 

Ponieważ części "\ ..." ciągu mogą być bardzo dobrze wymykające się.