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
3 Réponses :
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 /
Merci beaucoup. exécution avec python3 résolu.
C'est ma première réponse ici ... Heureux d'avoir pu vous aider! :)
La réponse est dans votre question: aucun module nommé sklearn. Essayez d'installer sklearn:
pip install -U scikit-learn
Dans la question, OP a répondu que oui.
Assurez-vous que vous utilisez la version correcte de Python. Dans certains OS, Python3.x est appelé sur la ligne de commande comme Si vous utilisez python3, python3 code> et vous devrez donc modifier votre code
exécuté code> sur
"python3 /mydir/report.py" code>. p>
pip code> sera expédié avec l'installation et, par conséquent, vous devrez peut-être exécuter
PIP INSTALL -U SCIKIT-APPREND CODE>. p>