J'ai une application principalement Scala et je suis intéressé par des approches pour intégrer Python code dans cette application de manière à laquelle vous êtes prouvé personnellement de réussir.
Dans ce contexte
Espérons que cette question admet des réponses factuelles plutôt que des discussions parce que je demande des observations factuelles. Toutefois, si cela est trop subjectif, alors que vous fermez cela pourriez-vous suggérer un de,
Merci.
Capturez les résultats via une variable et capturer des exceptions via STERRR comme suit:
à Scala:
import sys.process._
def callPython(): Unit = {
val result = "python /fullpath/mypythonprogram.py" ! ProcessLogger(stdout append _, stderr append _)
println(result)
println("stdout: " + stdout)
println("stderr: " + stderr)
}
et en python:
try:
throws()
return 0
except Exception as err:
sys.stderr.write(f'Exception: {err}')
return 1
Pour un examen plus approfondi, voir le processus Package ICI . Visitez également ProcessBuilder ICI et ProcessLogger - ici
Cela ne sera pas une réponse unique à cela car chaque cas est différent et que toutes les approches ont été utilisées avec succès par différentes équipes.
En général, il y a trois approches: