Как установить JPype на OS X Lion для использования с Neo4j?

Я пытаюсь использовать Neo4j для проекта и хочу взаимодействовать с ним через Python, так как я новичок в программировании и не знаю никакой Java. Я следую инструкциям по установке , но я застрял на первом шаге, который должен установить JPype.

Я использую OS X 10.7 (лев). Я думаю, что моя конфигурация довольно стандартная с Python 2.7.2, загружаемая с веб-сайта Python и Java 1.6.0, загруженного с веб-сайта Apple.

Когда я бегу

% 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 

Я нашел сообщение в блоге о gcc-ошибке с JPype , но я следил за инструкциями там безрезультатно. Я также отправил по электронной почте автора этой публикации, и он сказал, что никогда не использовал JPype, работал в OS X 10.6 и не имел никакого представления.

Я также отправил по электронной почте создателю JPype, который сказал мне, что он использует только Windows, и не знает, как сделать установку на OS X. Но если мы сможем решить это, я могу указать ему на ответ, и, возможно, он может добавить решение для документации JPype и помощь многим другим людям!

Итак, кто-нибудь знает, что я делаю неправильно? Я хотел бы использовать Neo4j, но я не знаю Java, поэтому у меня полная потеря для исправления ошибки компилятора.

Основываясь на чтении каждого результата Google, мои две действующие теории таковы:

  1. Я каким-то образом использую 32-разрядную версию Python или Java (хотя я использовал стандартные официальные установки и не могу понять, как переключиться на 64-битный или если это даже возможно)

  2. Файлы JPype могут быть скомпилированы только с использованием GCC 4.0 вместо 4.2. Но я ничего не могу найти в Интернете о том, как откат к GCC 4.0 (или если он поставляется с MacBook 2011 года, и есть способ заставить JPype скомпилироваться с этим).

Существует еще один подобный вопрос , но решение заключается в использовании другого адаптера, который проходит через REST, вместо того, чтобы напрямую подключаться к Java. Я попробую, если это потребуется, но я бы предпочел использовать рекомендуемый метод Neo4j, если это возможно.

  • Почему я получаю сообщение об ошибке: команда 'llvm-gcc-4.2' не удалась с статусом выхода 1
  • Не удалось создать PIL на Mac OS X 10.7 Lion
  • Правильно Установка и настройка Python / Pyside / PyDev на OS X Lion (и, вероятно, будущие версии OS X)
  • Использование модуля многопроцессорности python для ввода-вывода с pygame на Mac OS 10.7
  • Закладка вкладки python Mac OSX 10.7 (Lion)
  • Разрешение отклонено при попытке установить pip в Mac OS X Lion
  • Установка (сборка) matplotlib в mac osx lion
  • numpy и scipy для предустановленного python 2.6.7 на Mac OS Lion
  • 10 Solutions collect form web for “Как установить JPype на OS X Lion для использования с 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/ 

    В этот пост появилось небольшое googling: http://blog.y3xz.com/post/5037243230/installing-jpype-on-mac-os-x

    Я выполнил эти инструкции, чтобы изменить setup.py, а затем запустить sudo python setup.py install без проблем.

    Это помогает?

    На моем Льве, каталог «включить» в JDK исчез, поэтому 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> 

    Для меня,

     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) 

    Вот инструкции, которые я ввел в мой README, чтобы установить JPype на OS X 10.7. Та же идея, что и ответы здесь, но достаточно разные, чтобы гарантировать подачу.

    Интерфейс python для java (JPype) нуждается в модах для setup.py: В заключение вам нужно убедиться, что сценарий JPype setup.py может видеть ваши Java SDK «Заголовки» и «Главная» директория, в которой мне приходилось устанавливать Java из Apple сначала, так как моя установка по умолчанию 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/ 

    1) Сценарий JPype предполагает, что заголовки находятся в домашнем каталоге, но это не так, поэтому я изменил setupMacOSX(self) путь var и создал новый путь к контенту Content в скрипте setup.py. В setupMacOSX(self) :

     self.javaHome = '/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/' self.javaContents = '/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/' 

    2) В setupMacOSX(self) , измените self.libraryDir :

     self.libraryDir = [self.javaContents + "/Libraries"] 
    • Обратите внимание, что этот шаг был упомянут по мере необходимости, но мне не нужно было это делать, чтобы он работал, поэтому, возможно, попробуйте без него сначала

    3) В setupInclusion добавьте пути к вашему директорию «Главная / Включить» и директорию «Заголовки»:

     self.javaHome+"/include", self.javaContents + "/Headers", в self.javaHome+"/include", self.javaContents + "/Headers", 

    4) Запуск установки должен теперь работать:

     sudo python setup.py install 

    Для всех, кто все еще пытается установить Jpype, но, тем временем, обновил Mac OS: ответ Андреаса Коллегера работает нормально, но с 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 . По крайней мере, в моей системе. 🙂

    Для меня, на Mountain Lion

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

    работал.

     $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 = '/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 версией я получил те же ошибки, что и в начале.

    Чтобы сделать ответ Уилла более конкретным: мне пришлось изменить метод setupInclusion (self), добавив путь к каталогу, который он предложил, например «/System/Library/Frameworks/JavaVM.framework/Headers» в Mountain Lion (версия java 1.6 ). При этом установка JPype преуспела (хотя давала кучу предупреждений …)

    Вот что сработало для меня – порекомендуйте, чтобы вы поместили первую строчку в свой профиль.

    экспорт JAVA_HOME = $ (/ usr / libexec / java_home) cd $ JAVA_HOME sudo ln -s include Заголовки sudo cp include / darwin / * include / cd –

    Обратите внимание, что вместо изменения setup.py я меняю установку JDK. Это имеет то преимущество, что проблема была решена для других проектов.

    Для тех, кто пытается установить на Mountain Lion, мне пришлось дополнительно отредактировать файл setup.py, чтобы включить здесь файлы заголовков:

    /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers

    Python - лучший язык программирования в мире.