正在尝试为 python 安装 lucene。首先需要安装jcc。为 jcc 构建 setup.py 时,出现错误 ld: library not found for -ljava

Trying to install lucene for python. First need to install jcc. When building setup.py for jcc, I get the error ld: library not found for -ljava

正在尝试为 python 安装 lucene。 首先需要安装jcc。为 jcc 构建 setup.py 时,出现错误 ld: library not found for -ljava

Entire error can be found [here][1]: 

this is code

documentation for JCC 状态:

JCC’s setup.py file needs to be edited before building JCC to specify the location of the Java Runtime Environment’s header files and libraries.

另见 building JCC

在我的 OSX 系统上,发现 JAVAHOMEJAVAFRAMEWORKS 在 运行 安装时回显:

$ python setup.py install
found JAVAHOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
found JAVAFRAMEWORKS = /System/Library/Frameworks/JavaVM.framework
...

我用 Python 2.7 测试过。另外,从 jcc 源目录:

>>> from helpers2.darwin import JAVAHOME, JAVAFRAMEWORKS
found JAVAHOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
found JAVAFRAMEWORKS = /System/Library/Frameworks/JavaVM.framework

如果你的JAVAHOME没有被发现,你可以设置环境变量JCC_JDK。示例:

$ ls /Library/Java/JavaVirtualMachines/
jdk1.7.0_80.jdk     jdk1.8.0_25.jdk
jdk1.8.0_141.jdk    jdk1.8.0_91.jdk
$ JCC_JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home python setup.py install

在这种情况下,看起来 jdk1.7.0_80 用于编译,但输出的前两行是:

found JAVAHOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
found JAVAFRAMEWORKS = /System/Library/Frameworks/JavaVM.framework

所以这似乎具有误导性,但似乎仍然可以正常工作。