0
votes

Appel de script Python à partir de code Java à l'aide de Runtime.exec (): ImportError: Aucun module nommé sklearn

J'ai un programme Java qui appelle un script python. Ce script python a les importations suivantes

ImportError: No module named sklearn

Sur mon mac, j'ai déjà python 2.7, j'ai maintenant installé python 3.7 J'ai également installé les modules numpy, scipy et sklearn en utilisant pip3.

Dans Intellij, j'ai sélectionné l'interpréteur python 3.7 et Java1.8 pour mon projet

Quand j'exécute le programme java qui appelle script python utilisant la commande

 Process p = Runtime.getRuntime().exec("python /mydir/report.py");

j'obtiens cette erreur

 import numpy as np
 from sklearn import metrics

Je soupçonne que d'une manière ou d'une autre intellij utilise python 2.7 et python 3.7. La raison en est que lorsque j'exécute le script python directement dans pyCharm en utilisant python2.7, j'obtiens la même erreur mais pas avec 3.7

S'il vous plaît, aidez à résoudre cela, j'ai déjà parcouru toutes les questions relatives utile pour cette situation


0 commentaires

3 Réponses :


2
votes

Essayez d'utiliser 'python3':

ProcessBuilder pb = new ProcessBuilder("python", "/mydir/report.py"); /*Or python3*/
Process process = pb.start();

Ou bien, vous pouvez essayer:

Process p = Runtime.getRuntime().exec("python3 /mydir/report.py");

Pour une utilisation détaillée de ProcessBuilder: https://examples.javacodegeeks.com/core-java / lang / processbuilder / java-lang-processbuilder-exemple /


2 commentaires

Merci beaucoup. exécution avec python3 résolu.


C'est ma première réponse ici ... Heureux d'avoir pu vous aider! :)



-1
votes

La réponse est dans votre question: aucun module nommé sklearn. Essayez d'installer sklearn:

pip install -U scikit-learn


1 commentaires

Dans la question, OP a répondu que oui.



0
votes

Assurez-vous que vous utilisez la version correcte de Python. Dans certains OS, Python3.x est appelé sur la ligne de commande comme python3 et vous devrez donc modifier votre code exécuté sur "python3 /mydir/report.py" .

Si vous utilisez python3, pip sera expédié avec l'installation et, par conséquent, vous devrez peut-être exécuter PIP INSTALL -U SCIKIT-APPREND .


0 commentaires