Java 如何在OS X Lion上安装JPype以与Neo4j一起使用?
我正在尝试将Neo4j用于一个项目,并希望通过Python与之交互,因为我是编程新手,不懂Java。我在跟踪,但我被卡住了 第一步是安装JPype 我正在使用OSX10.7Lion。我认为我的配置相当标准 从Python网站下载Python 2.7.2,从Apple网站下载Java 1.6.0 当我跑的时候Java 如何在OS X Lion上安装JPype以与Neo4j一起使用?,java,python,gcc,osx-lion,neo4j,Java,Python,Gcc,Osx Lion,Neo4j,我正在尝试将Neo4j用于一个项目,并希望通过Python与之交互,因为我是编程新手,不懂Java。我在跟踪,但我被卡住了 第一步是安装JPype 我正在使用OSX10.7Lion。我认为我的配置相当标准 从Python网站下载Python 2.7.2,从Apple网站下载Java 1.6.0 当我跑的时候 % sudo python setup.py install 在JPype安装程序中,我得到了大约100行关于各种.h文件的错误代码,然后 以以下行结束: lipo: can't figu
% 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,一直在OSX10.6中工作,也没有任何见解
我还给JPype的创建者发了电子邮件,他告诉我他只使用Windows,不知道如何在OS X上进行安装。但是如果我们能解决这个问题,我可以告诉他答案,也许他可以将解决方案添加到JPype文档中,并帮助其他很多人
有人知道我做错了什么吗?我想使用Neo4j,但我
我不懂Java,所以我完全不知道如何修复编译器
错误
基于阅读每一个谷歌搜索结果,我的两个
理论是:
我不知怎么地使用了32位版本的Python或Java,尽管我
使用标准的官方安装,但不知道如何
切换到64位,或者如果可能的话
只能使用GCC4.0而不是4.2来编译JPype文件。
但是我在网上找不到任何关于如何回滚到GCC4.0或GCC4.0的信息
如果它与2011年的MacBooks一起提供,并且有一些方法可以强制使用
JPype来编译它
有,但解决方案是使用不同的适配器,通过REST而不是直接连接到Java。如果有必要,我会尝试,但如果可能的话,我真的更愿意使用推荐的Neo4j方法。我不是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/
谷歌搜索了一下这个帖子:
我按照这些说明修改setup.py,然后毫无问题地运行sudopython setup.py安装
这有帮助吗?我也这么做了,但是选择了
self.javaHome = '/Developer/SDKs/**MacOSX10.6.sdk**/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/'
反而
self.javaHome = '/Developer/SDKs/**MacOSX10.7.sdk**/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/'
认识到我使用的是版本6和版本7。对于7版本,我得到了与开始时相同的错误 对我来说
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)
$uname -a
Darwin 12.0.0 Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~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)
对我来说,在山狮上
self.javaHome = '/System/Library/Frameworks/JavaVM.framework/'
成功了
$ 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)
$uname -a
Darwin 12.0.0 Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~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)
在我的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>
对于那些试图在Mountain Lion上安装的用户,我必须进一步编辑setup.py文件,以包含以下头文件:
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers适用于所有仍在尝试安装Jpype但同时更新了Mac OS的用户:Andreas Kolleger的答案很好,但对于XCode 4.3,路径更改为/Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/JavaVM.framework/Versions/Current/
在ML中,它是MacOSX10.8.sdk。至少在我的系统上: 以下是我在自述文件中给出的在OS X 10.7上安装JPype的说明。与这里的答案想法相同,但不同程度足以保证提交 java JPype的python接口需要setup.py的mods: 总之,您需要确保JPype setup.py脚本可以看到您的Java SDK头和主目录 我必须首先从苹果安装Java,因为我默认的OS X安装在我通过执行以下命令发现的典型Java安装路径中没有标题:
/usr/libexec/java_home
如果您碰巧有一个Headers目录,您可能不需要重新安装Java,并且可以根据您的Java主目录设置下面的路径变量,这可能与这些方向不同
安装Java后,我在以下位置找到了新安装:
/Library/Java/JavaVirtualMachines/
我的主目录是:
/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/
/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Headers/
我的头目录是:
/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/
/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Headers/
1 JPype脚本假定头在主目录中,但不在主目录中,因此我更改了主路径变量,并在setup.py脚本中创建了一个新的内容路径变量-在setupMacOSXself中:
2在setupMacOSXself中,更改self.libraryDir:
请注意,这一步是按要求提出来的,但我不必这样做,这样它就可以工作了,所以可能先不用它试试
3在setupInclusion中,将路径添加到主目录/包含目录和标题目录:
self.javaHome+"/include",
self.javaContents + "/Headers",
4运行安装程序现在应该可以工作了:
sudo python setup.py install
为了让威尔的回答更具体一点:我必须修改setupInclusionself方法,添加他建议的目录路径,即Mountain Lion java 1.6版上的“/System/Library/Frameworks/JavaVM.framework/Headers”。随着日元的安装
pe成功了,但给出了一系列警告…以下是对我有效的建议-建议你在个人资料中放第一行 导出JAVA_HOME=$/usr/libexec/JAVA_HOME cd$JAVA_主页 sudo ln-s包含头 sudo cp include/darwin/*include/ 光盘-
请注意,我没有更改setup.py,而是更改了JDK安装。这有助于解决其他项目的问题。Woo!这就解决了问题。我关注了你引用的博客文章,但我使用了/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home作为我的Java_主页,这是我从运行%/usr/libexec/Java_Home中得到的,另一篇博客文章告诉我要这么做。我会给JPype的家伙发电子邮件,让他把这个添加到文档中。在setup.py中,你需要添加self.jdkInclude=darwin和self.javaHome='/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home'。然后运行python setup.py install-user+1,首先尝试自己解决这个问题。我使用本线程中提到的一些建议的更改创建了它。是的,这是一个很好的观点。我应该提到操作系统版本,并对我的答案进行了编辑以反映这一点。具体路径将因您特定版本的MacOSX和安装的JDK而异。感谢您添加此信息,但由于这不是一个直接的答案,因此更适合作为注释