Rückruf zu Java von Graal Python aus nicht möglich (unter bestimmten Umständen, unter anderen jedoch nicht)Python

Python-Programme
Anonymous
 Rückruf zu Java von Graal Python aus nicht möglich (unter bestimmten Umständen, unter anderen jedoch nicht)

Post by Anonymous »

Ich habe versucht, Graal Python zu verwenden, um Python-Skripte von Java aus aufzurufen, und Python ruft die Host-Java-Anwendung zurück (einfacher Anzeigenachrichtenaufruf).
Das alles funktioniert gut, wenn es von Eclipse aus ausgeführt wird. Wenn ich die Anwendung jedoch mit jpackage unter macOS erstelle, schlägt der Rückruf von Python nach Java mit
fehl

Code: Select all

AttributeError: foreign object has no attribute 'msg'.
Warum sollte sich Graal Python bei Rückrufen unterschiedlich verhalten, je nachdem, wie die App verpackt ist?
Im Java-Konstruktor:

Code: Select all

this.pythonContext = Context.newBuilder()
.allowAllAccess(true)
.option("python.PythonPath", pythonPath)
.build();

// load initialisation script source to execute
Source source = Source.newBuilder("python", new File(".....myscript.py")).build();
this.pythonContext.eval(source);

// create PAAFBuilder with reference to this JAAFBuilder for making callbacks
this.paafBuilder = this.pythonContext.getBindings("python").getMember("create").execute(this);
Der msg()-Rückruf zum Anzeigen einer Nachricht in Java von Python:

Code: Select all

@HostAccess.Export
public void msg(String msg) {
formatContext.getMessageContext().msg(msg);
System.out.println(msg);
}
Maven-Abhängigkeiten

Code: Select all

    

org.graalvm.polyglot
polyglot
${graalpy.version}


org.graalvm.polyglot
python
${graalpy.version}
pom

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post