2010-09-06 20 views
2

У меня есть правый старый кошмар с JPype. У меня есть мой dev env на Windows и поэтому попробовал установить его там без везения. Затем я тоже попробовал Убунто. Сейчас я немного отчаялся. Я использую Mingw32, так как я пытался установить VS2008, но он сказал мне, что мне нужно установить XP SP2, но я нахожусь в Vista. Я пробовал VS2010, но не повезло, я получил ошибку «Не удалось найти vcvarsall.bat». Во всяком случае, теперь я на Mingw32Проблемы с компиляцией JPype

В конце концов я пытаюсь использовать Neo4j и Python, следовательно, моя потребность использовать JPype. Я нашел так много ссылок на проблему в сети для MySQL и т. Д., Но они не помогают мне с JPype.

Если бы я мог исправить UNIX или окна, я мог бы начать работать так помогать либо будет очень ценна.

Вот версии ..

для Windows: Vista 64 Python: 2,6 Компилятор Mingw32: последняя версия Jpype: 0.5.4.1 Java Информация: Java версия "1.6.0_13" Java (TM) SE Runtime Environment (сборка 1.6.0_13-b03) Java HotSpot (TM) 64-разрядный сервер VM (сборка 11.3-B02, смешанный режим)

Я бег:

питон setup.py установить --comp iler = wingw32

и получить следующий выход.

Выбор профиля для Windows работает установка работает построить работает build_py работает build_ext здания '_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/win32" -Isrc/native/common/include -Isrc/native/python/include -Ic: \ Python26 \ include -Ic: \ Python26 \ PC -c src/native/common/jp_array.cpp -o build \ temp.win32-2.6 \ Release \ src \ native \ common \ jp_array.o/EHsc src/native/common/jp_array.cpp: В функции-члене 'void JPArray :: setRange (int, int, std :: vector &)': sr с/нативный/общее/jp_array.cpp: 56: 13: предупреждение: сравнение между подписью и целого числа без знака выражения SRC/нативный/общее/jp_array.cpp: 68: 4: предупреждение: не рекомендуется использовать преобразование из строки постоянной на 'символ *' src/native/common/jp_array.cpp: В функции-члену void JPArray :: setItem (int, HostRef *) ': src/native/common/jp_array.cpp: 80: 3: warning: устаревшее преобразование из строковой константы в 'символ *' GCC:/EHsc: Нет такого файла или каталога ошибка: команда 'НКУ' не удалось со статусом выхода 1

так на UNIX Ubunto проблема заключается в следующем:

Java версия: 1.6 .0_18 JPype: 0.5.4.1 Python: 2,6

Java находится в пути, и я сделал APT-получить установку сборки-основы только сейчас так есть последние GCC и т.д.

Я не вставит весь вывод, как это массивное. Так много ошибок, как будто я пропустил установку Java или подобных, но у меня ее нет. Набрав java, я перейду в версию выше.Это начало:

работает установка работает построить работает build_py работает build_ext здания '_jpype' расширения НКУ -pthread -fno-строги ступенчатости -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-прототипы -fPIC -I/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include -I/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include/linux -Isrc/native/common/include -Isrc/native/python/include -I/usr/include/python2.6 -c src/native/common/jp_javaenv_autogen.cpp -o build/temp.linux-i686-2.6/src/native /common/jp_javaenv_autogen.o cc1plus: warning: опция командной строки «-Wstrict-prototypes» действительна для Ada/C/ObjC, но не для C++ В файле, входящем в состав src/native/common/jp_javaenv_auto gen.cpp: 21: src/native/common/include/jpype.h: 45: 17: error: jni.h: Нет такого файла или каталога В файле, который входит в состав src/native/common/jp_javaenv_autogen.cpp: 21 : src/native/common/include/jpype.h: 77: ошибка: ISO C++ запрещает объявление 'jchar' без типа src/native/common/include/jpype.h: 77: error: expected ',' или '...' перед '' token src/native/common/include/jpype.h: 82: ошибка: ISO C++ запрещает объявление 'jchar' без типа src/native/common/include/jpype. h: 82: error: expected ';' before '' token src/native/common/include/jpype.h: 86: ошибка: ISO C++ запрещает объявление 'jchar' без типа src/native/common/include/jpype.h: 86: ошибка : expected ';' before '&' token src/native/common/include/jpype.h: 88: error: expected ';' before 'private' src/native/common/include/jpype.h: 89: ошибка: ISO C++ запрещает объявление «jchar» без типа src/native/common/include/jpype.h: 89: ошибка: ожидается ';' перед '*' токеном В файл, включенный из src/native/common/включают в себя/jpype.h: 96, из SRC/родной/Common/jp_javaenv_autogen.cpp: 21:

И это конец:

SRC/родной/общие/включать/jp_monitor.h: 27: ошибка: «jobject» не называет тип src/native/common/jp_javaenv_autogen.cpp: 30: error: 'jbyte' не называет тип src/native/common/jp_javaenv_autogen.cpp: 38: error: 'jbyte' не называет тип src/native/common/jp_javaenv_autogen.cpp: 45: ошибка: переменная или поле «SetStaticByteField» объявлено void src/native/common/jp_javaenv_autogen.cpp: 45: ошибка: «jclass» не был объявлен в этой области src/native/common/jp_javaenv_autogen.cpp : 45: ошибка: «jfieldID» не объявлен в этой области src/native/common/jp_javaenv_autogen.cpp: 45: ошибка: «jbyte» не была объявлена ​​в этой области ошибка: команда «gcc» не удалась с статусом выхода 1

ответ

1
gcc: /EHsc: No such file or directory error: command 'gcc' failed with exit status 1 

EHsc - это компилятор, специфичный для инструментальной цепочки Microsoft. поэтому вы получаете эту ошибку. Вы где-то смешиваете программные цепочки, как-то - возможно, некоторые оставшиеся файлы из предыдущей попытки? Мне пришлось бы скачать JPype для проверки здания с помощью mingw32.

Вы знаете, что вы можете скачать бинарный дистрибутив JPype для Python 2.6 и Pytho 2.5, хотя?

Что касается вашей сборки * NIX, вам не хватает заголовков разработки Java/JNI, поэтому типы Java для C недоступны, и компилятор не может их распознать. Установите пакет dev и убедитесь, что ваша toolchain может их найти.

1

Отредактируйте Setup.py и удалите параметр/EHsc.

3

У меня была такая же ошибка в 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 
Смежные вопросы