我安装了PyLucene 4.10.1(我认为是最新的)。但是,当我调用initVM()时,会引发一个SIGSEGV,我不知道如何处理它。
这是输出:
[zzz@xxx gitCode]$ python
Python 2.7.5 (default, Oct 11 2015, 17:47:16)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
>>> import lucene
>>> lucene.initVM()
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fc725385c4b, pid=18501, tid=140493474518848
#
# JRE version: OpenJDK Runtime Environment (7.0_101) (build 1.7.0_101-mockbuild_2016_04_19_09_09-b00)
# Java VM: OpenJDK 64-Bit Server VM (24.95-b01 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 2.6.6pre01
# Distribution: Red Hat Enterprise Linux Server release 7.2 (Maipo), package rhel-2.6.6.1.el7_2-x86_64 u101-b00
# Problematic frame:
# V [libjvm.so+0x62ac4b]
#
# Core dump written. Default location: /local/gitCode/core or core.18501
#
# An error report file with more information is saved as:
# /tmp/jvm-18501/hs_error.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
# http://icedtea.classpath.org/bugzilla
#
Aborted (core dumped)
核心文件的输出如下:
Core was generated by `python'.
Program terminated with signal 6, Aborted.
#0 0x00007fc72e7ee5f7 in ?? ()
但是,我注意到Pylucene使用JRE 1.7(来自上面的错误消息)。当我运行以下命令时:
/usr/sbin/alternatives --config java
/usr/sbin/alternatives --config javac
它告诉我Java 1.8是默认的。这可能是兼容性问题吗?如果是,我如何确保一个版本的稳定性?
答案 0 :(得分:0)
我实际安装了两个版本的pylucene(4.9和4.10)。此外,我使用JDK 1.7编译它们并且实际上使用1.8(甚至在切换到1.7之后它显示了SIGSEGV)。
最后,我只用rm -rf
两个蛋(site/packages/lucene4.xxx.egg
)并用JDK 1.8重新编译pylucene4.10并且它有效。