我和JPype做了个正确的噩梦。我已经在Windows上安装了我的dev env,所以我尝试在那里安装它,没有任何结果。然后,我也试了一试,也没有运气。我现在有点绝望了。我使用Mingw32,因为我尝试安装VS2008,但它告诉我,我必须安装XP SP2,但我在Vista上。我尝试了VS2010,但没有运气,我得到了‘错误:找不到vcvarsall.bat’错误。不管怎样,我现在上Mingw32了
最终,我试图使用Neo4j和Python,因此我需要使用JPype。我在网上找到了很多关于MySQL等问题的参考资料,但是它们对我的JPype并没有帮助。
如果我能修复unix或windows,我就可以开始工作了,所以我将非常感谢您的帮助。
这是版本..。
Windows: Vista 64 Python: 2.6编译器Mingw32:最新版本Jpype: 0.5.4.1 java信息: Java版本"1.6.0_13“Java(TM) SE运行时环境(build 1.6.0_13-b03) Java HotSpot(TM) 64位服务器VM (build 11.3-b02,混合模式)
我跑:
python -编译器= setup.py 32
并得到以下输出。
选择运行build_py运行安装运行构建运行build_ext build '_jpype‘扩展C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -DWIN32=1 "-IC:\Program Files (x86)\Java\jdk1.6.0_21/include“-IC:\Program Files (X86)\Java\jdk1.6.0_21/include/-Ic 32-Isrc/本机/公共/include-Isrc/本地/python/include -Ic:\Python26\include -Ic:\Python26 26\PC build\temp.win32-2.6\Release\src\native\common\jp_array.o src/ -c /-c/jp_array.cpp -o -o /EHsc src/天生/PC_array.cpp:在成员函数'void::setRange(int,int,std::向量&):src/本机/ string /jp_array.cpp:56:13:警告:有符号和无符号整数表达式src/common/string/jp_array.cpp:68:4:警告:从字符串常量到'char*‘src/本机/string/jp_array.cpp: In成员函数'void::setItem(int,int,HostRef*):src/本机/公共/jp_array.cpp:80:3:警告:从字符串常量到'char*‘gcc: /EHsc:没有这样的文件或目录错误:命令gcc在退出状态1下失败
因此,关于unix,Ubunto问题如下:
Java : 1.6.0_18 JPype: 0.5.4.1 Python: 2.6
Java还在路上,我刚刚做了安装构建要点,所以有最新的GCC等。
我不会粘贴所有的输出,因为它是巨大的。如此多的错误,就好像我错过了Java或类似的安装,但是我没有。键入java会让我进入上面的版本。这是一个开始:
运行安装运行构建运行build_py运行build_ext构建'_jpype‘扩展gcc -pthread -fno-严格-混叠-DNDEBUG -g -fwrapv -O2 -Wall -Wstrict原型-fPIC -Isrc/native/python/include -Isrc/_jpype/python/include -I/usr/ -c /python2.6-c src/-c/Wstrict/jp_javaenv_autogen.cpp -o cc1plus:警告:命令行选项“-Wstrict”对Ada/C/ObjC有效,但对src/native/-c/jp_javaenv_autogen.cpp:21:src/ line /Wstrict/include/jpype.h:45:17: error: jni.h:没有此类文件或C++:21:src/本机/common/jp_javaenv_autogen.cpp:21:src/本机/公共/include/jpype.h:77:C++:ISO禁止声明“jchar”,没有类型为src/本机/公共/include/jpype.h:77: error: expected‘,“或.”在“令牌src/本机/公共/包括/jpype.h:82: C++禁止声明”jchar“之前,没有任何类型src/本机/公共/包括/jpype.h:82:错误:预期;在”令牌src/本机/公共/包括/jpype.h:86: C++禁止声明‘jchar’而没有类型src/C++/公用/包括/jpype.h:86:错误:预期;“前面的‘令牌src/本地/通用/包括/jpype.h:88:预期:’;在‘私有’src/本机/公共/include/jpype.h:89: error: ISO C++禁止声明没有任何类型的“jchar”,而没有类型为src/本机/公共/包括/jpype.h:89:错误:预期;src/本机/公共/include/jpype.h:96所包含的文件中的‘*’令牌,来自src/本机/公共/jp_javaenv_autogen.cpp:21:
这就是结局:
src/本机/公共/包括/jp_monor.h:27: error:‘jobject’不命名类型src/ field /jobject/jp_javaenv_autogen.cpp:30: error:‘j字节’没有命名类型src/field/jobject/jp_javaenv_autogen.cpp:38: error:‘j字节’不给类型命名src/本机/公共/jp_javaenv_autogen.cpp:45: error:变量或字段‘SetStaticByteField’声明无效/本地/通用/jp_javaenv_autogen.cpp。:45: error:在这个作用域中没有声明‘jclass’,这个作用域中没有声明‘jclass’/jp_javaenv_autogen.cpp:45:jfieldID:在这个作用域中没有声明‘jclass’‘,在这个作用域中没有声明’jclass‘/jp_javaenv_autogen.cpp:45: error:’j字节‘在这个作用域中没有声明:命令'gcc’在退出状态1下失败。
发布于 2012-11-23 16:11:17
我在Linux上也犯了同样的错误。对我来说很管用
export JAVA_HOME=/usr/lib/[*your_java_folder*]请看setup.py第45行:
def setupLinux(self):
self.javaHome = os.getenv("JAVA_HOME")
if self.javaHome is None :
self.javaHome = '/usr/lib/jvm/java-1.5.0-sun-1.5.0.08' # Ubuntu linux发布于 2010-09-06 07:09:01
gcc: /EHsc: No such file or directory error: command 'gcc' failed with exit status 1EHsc是特定于的编译器开关。这就是为什么你要得到这个错误。不知怎么的,你在某个地方混合了工具链--也许是以前尝试中遗留下来的一些文件?我必须亲自下载JPype来用mingw32验证建筑物。
您知道可以下载Python2.6和Pytho2.5的JPype二进制发行版吗?
至于您的*NIX构建,您缺少了Java/JNI开发头,因此C的Java类型不可用,编译器无法识别它们。安装dev包并确保您的工具链能够找到它们。
发布于 2011-06-06 21:22:18
编辑Setup.py并删除/EHsc选项。
https://stackoverflow.com/questions/3649577
复制相似问题