2010-09-06 10 views
2

J'ai un bon vieux cauchemar avec JPype. J'ai mon dev env sur Windows et j'ai donc essayé de l'installer là-bas sans aucune chance. J'ai ensuite essayé sur Ubunto aussi sans chance. Je deviens un peu désespéré maintenant. J'utilise Mingw32 depuis que j'ai essayé d'installer VS2008 mais il m'a dit que je devais installer XP SP2 mais je suis sur Vista. J'ai essayé VS2010 mais pas de chance, j'ai l'erreur 'error: Impossible de trouver vcvarsall.bat'. Quoi qu'il en soit, je suis maintenant sur Mingw32Problèmes de compilation JPype

Finalement j'essaie d'utiliser Neo4j et Python d'où mon besoin d'utiliser JPype. J'ai trouvé tellement de références au problème sur le net pour MySQL etc mais ils ne m'aident pas avec JPype.

Si je pouvais réparer unix ou Windows, je pourrais y aller, donc l'aide soit vraiment appréciée.

Voici les versions ..

de Windows: Vista 64 Python: 2.6 compilateur Mingw32: dernière version Jpype: 0.5.4.1 informations Java: java version "1.6.0_13" Java (TM) SE Runtime Environment (build 1.6.0_13-b03) Java HotSpot (TM) 64 bits serveur VM (build 11.3-b02, mode mixte)

je lance:

python setup.py install --comp iler = wingw32

et obtenir la sortie suivante.

Le choix du profil Windows en cours d'exécution installer construire en cours d'exécution en cours d'exécution build_py en cours d'exécution build_ext bâtiment extension '_jpype' C: \ MinGW \ bin \ gcc.exe -mno-Cygwin -mdll -O -Wall -DWIN32 = 1 "-IC: \ Fichiers programme (x86) \ Java \ jdk1.6.0_21/include" "-IC: \ Program Files (x86) \ Java \ jdk1.6.0_21/include/win32" -Isrc/natif/commun/include -Isrc/natif/python/include -Ic: \ Python26 \ include -Ic: \ Python26 \ PC -c src/natif/common/jp_array.cpp -o build \ temp.win32-2.6 \ Release \ src \ natif \ src/native/common/jp_array.cpp: dans la fonction membre 'void JPArray :: setRange (int, int, std :: vecteur &)': src c/native/common/jp_array.cpp: 56: 13: warning: comparaison entre les expressions entières signées et non signées src/native/common/jp_array.cpp: 68: 4: warning: conversion obsolète de la chaîne de caractères en 'char *' src/native/common/jp_array.cpp: Dans la fonction membre 'void JPArray :: setItem (int, HostRef *)': src/native/common/jp_array.cpp: 80: 3: avertissement: conversion obsolète de la chaîne de caractères constante à 'char *' gcc:/EHsc: Aucun fichier ou répertoire erreur: commande 'gcc' a échoué avec l'état de la sortie 1

donc sur unix Ubunto le problème est le suivant:

version Java: 1.6 .0_18 JPype: 0.5.4.1 Python: 2.6

Java est dans le chemin et je l'ai apt-get install build-essentials tout à l'heure ont donc le dernier GCC etc.

Je ne vais pas coller toutes les sorties car il est massif. Tant d'erreurs c'est comme si j'avais raté l'installation de Java ou similaire mais je ne l'ai pas fait. tapant java me prend dans la version ci-dessus.Voici le début:

en cours d'exécution installer construire en cours d'exécution en cours d'exécution build_py en cours d'exécution build_ext bâtiment extension '_jpype' gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -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/commun/jp_javaenv_autogen.cpp -o build/temp.linux-i686-2.6/src/native /common/jp_javaenv_autogen.o cc1plus: warning: l'option de ligne de commande "-Wstrict-prototypes" est valide pour Ada/C/ObjC mais pas pour C++ Dans le fichier inclus de src/native/common/jp_javaenv_auto gen.cpp: 21: src/native/common/include/jpype.h: 45: 17: erreur: jni.h: aucun fichier ou répertoire de ce type Dans le fichier fourni par src/native/common/jp_javaenv_autogen.cpp: 21 : src/natif/common/include/jpype.h: 77: erreur: ISO C++ interdit la déclaration de 'jchar' avec aucun type src/native/common/include/jpype.h: 77: erreur: attendu ',' ou '...' avant '' token src/native/common/include/jpype.h: 82: erreur: ISO C++ interdit la déclaration de 'jchar' sans type src/native/common/include/jpype. h: 82: erreur: attendu ';' avant '' token src/natif/common/include/jpype.h: 86: erreur: ISO C++ interdit la déclaration de 'jchar' sans type src/native/common/include/jpype.h: 86: erreur : attendu ';' avant '&' jeton src/native/common/include/jpype.h: 88: erreur: attendue ';' avant 'private' src/native/common/include/jpype.h: 89: erreur: ISO C++ interdit la déclaration de 'jchar' sans type src/native/common/include/jpype.h: 89: erreur: attendue ';' avant '' 'jeton Dans le fichier inclus de src/native/common/include/jpype.h: 96, de src/native/commune/jp_javaenv_autogen.cpp: 21:

Et voici la fin:

src/native/commune/include/jp_monitor.h: 27: erreur: 'jobject' ne nomme pas un type src/native/common/jp_javaenv_autogen.cpp: 30: erreur: 'jbyte' ne nomme pas un type src/native/common/jp_javaenv_autogen.cpp: 38: erreur: 'jbyte' ne nomme pas un type src/native/common/jp_javaenv_autogen.cpp: 45: erreur: variable ou champ 'SetStaticByteField' déclaré vide src/native/common/jp_javaenv_autogen.cpp: 45: erreur: 'jclass' n'a pas été déclaré dans cette portée src/native/common/jp_javaenv_autogen.cpp : 45: erreur: 'jfieldID' n'a pas été déclaré dans cette portée src/native/common/jp_javaenv_autogen.cpp: 45: erreur: 'jbyte' n'a pas été déclaré dans cette portée erreur: la commande 'gcc' a échoué avec l'état de sortie 1

Répondre

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

EHsc est un commutateur de compilation spécifique à la chaîne d'outils Microsoft. c'est pourquoi vous obtenez cette erreur. Vous mélangez des chaînes d'outils quelque part, d'une manière ou d'une autre - peut-être des fichiers restants d'une tentative précédente? Je devrais télécharger JPype moi-même pour vérifier la construction avec mingw32. Cependant, vous savez que vous pouvez télécharger une distribution binaire JPype pour Python 2.6 et Pytho 2.5, par contre?

Comme pour votre version * NIX, les en-têtes de développement Java/JNI vous manquent, les types Java pour C sont indisponibles et le compilateur ne peut pas les reconnaître. Installez le paquet dev et assurez-vous que votre toolchain est capable de les trouver.

1

Modifiez le Setup.py et supprimez l'option/EHsc.

3

J'ai eu la même erreur sous Linux. Il a travaillé pour moi simplement exécuter

export JAVA_HOME=/usr/lib/[*your_java_folder*] 

Regardez ligne 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 
Questions connexes