如何在OS X Lion上安装JPype以便与Neo4j一起使用?

7 投票
10 回答
5292 浏览
提问于 2025-04-17 08:27

我正在尝试用Neo4j做一个项目,想通过Python来和它互动,因为我刚开始学编程,对Java不太了解。我在按照安装说明进行操作,但在第一步,也就是安装JPype时遇到了麻烦。

我使用的是OS X 10.7(狮子系统)。我的配置应该是比较标准的,Python是从官网上下载的2.7.2版本,Java是从苹果官网上下载的1.6.0版本。

当我运行

% sudo python setup.py install

JPype安装程序时,出现了大约100行关于各种.h文件的错误代码,最后以以下几行结束:

lipo: can't figure out the architecture type of: /var/tmp//
ccwOzLi9.out

error: command 'gcc-4.2' failed with exit status 1

我找到了一篇关于JPype的gcc错误的博客,但按照那里的说明操作后还是没能解决问题。我还给那篇文章的作者发了邮件,他告诉我他其实从来没有用过JPype,他是在OS X 10.6上工作,所以也没有什么建议。

我还给JPype的创建者发了邮件,他告诉我他只用Windows,对如何在OS X上安装没有任何头绪。不过如果我们能解决这个问题,我可以把答案告诉他,也许他能把解决方案加到JPype的文档里,帮助更多的人!

所以,有人知道我哪里出错了吗?我想用Neo4j,但我不懂Java,所以对如何修复编译错误完全无从下手。

根据我在谷歌上找到的所有结果,我有两个猜测:

  1. 我可能在使用32位的Python或Java(虽然我用的是标准的官方安装,但不知道怎么切换到64位,或者这是否可能)。

  2. JPype的文件只能用GCC 4.0编译,而不是4.2。但我在网上找不到关于如何回退到GCC 4.0的信息(或者它是否随2011年的MacBook一起提供,以及是否有办法强制JPype用它编译)。

还有另一个类似的问题,但那里的解决方案是使用一个不同的适配器,通过REST而不是直接连接Java。如果必须的话我会尝试那个,但我真的希望能用推荐的Neo4j方法,如果可能的话。

10 个回答

4

对我来说,

self.javaHome = '/System/Library/Frameworks/JavaVM.framework/Versions/Current/'

这个方法有效。

$ uname -a Darwin  11.4.0 Darwin Kernel Version 11.4.0: Mon Apr 9 19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64 

$ java -version java version "1.6.0_33" Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720) Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)
10

在我的Lion系统上,JDK里的“include”目录不见了,所以JPype找不到jni.h这个文件。

我在setup.py文件里更新了两个地方,一个是设置去哪里找jar库:

def setupMacOSX(self):
    self.javaHome = '/System/Library/Frameworks/JavaVM.framework'
    self.jdkInclude = ""
    self.libraries = ["dl"]
    self.libraryDir = [self.javaHome+"/Home/lib"]
    self.macros = [('MACOSX',1)]

另一个是设置去哪里找jni.h文件:

def setupInclusion(self):
    self.includeDirs = [
        self.javaHome+"/Headers",
        <other stuff>
11

我不是Python方面的专家,但我试着在我的电脑上安装JPype:

% uname -a
Darwin fatty-i7.local.tld 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug  9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
% java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

在OSX Lion系统上,最新的JDK似乎位于这里:

/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/JavaVM.framework/

我稍微搜索了一下,找到了这篇文章:http://blog.y3xz.com/post/5037243230/installing-jpype-on-mac-os-x

我按照那些说明修改了setup.py文件,然后运行了 sudo python setup.py install,没有遇到任何问题。

这样有帮助吗?

撰写回答