【问题标题】:Error installing pyjnius, "jni.h" not found. (OS X 10.10.1)安装 pyjnius 时出错,找不到“jni.h”。 (OS X 10.10.1)
【发布时间】:2015-02-14 10:09:39
【问题描述】:

我一直在尝试在 OS X 10.10.1 上安装 pyjnius。其他依赖项处理完毕,我一直无法解决找不到头文件“jni.h”的问题。以下是发生的事情:

$ sudo python setup.py install
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
  warnings.warn(msg)
running install
running build
running build_py
running build_ext
skipping 'jnius/jnius.c' Cython extension (up-to-date)
building 'jnius' extension
cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c jnius/jnius.c -o build/temp.macosx-10.10-intel-2.7/jnius/jnius.o
jnius/jnius.c:238:10: fatal error: 'jni.h' file not found
#include "jni.h"
         ^
1 error generated.
error: command 'cc' failed with exit status 1

[如果有什么不同,我尝试过使用 pip,但它以同样的错误终止。]

安装的 Java 版本为 1.6.0.65 和 1.8.0.25。如果需要,我可以在它们之间切换。

如果有帮助,我可以使用 locate 找到 jni.h。它位于此处:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/include/jni.h

任何帮助将不胜感激!

【问题讨论】:

    标签: java python macos osx-yosemite pyjnius


    【解决方案1】:

    好的,事实证明我非常接近答案。我导航到/System/Library/Frameworks/JavaVM.Framework/Versions/A,并创建了一个名为Headers 的目录。然后我符号链接到jni.h

    ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h jni.h
    

    运行设置脚本然后再次引发错误,这次是jni_md.h。再次进行符号链接,

    ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni_md.h jni_md.h
    

    - 成功了!我再次运行设置,现在可以import jnius

    如果有人有更简单的解决方法,请发布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 2017-01-18
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 2016-01-01
      • 2013-05-05
      相关资源
      最近更新 更多