Py4jモジュールを使用してゲートウェイサーバの自動化を実装しています。ユーザが関数を呼び出すたびにゲートウェイサーバを起動する必要があります。私が直面している問題は、バックグラウンドで機能を実行する。ここで コードです:Pythonからバックグラウンドでmvnを実行Popenとスレッド関数
def mvn():
logger = open("log.txt", 'w')
logger.seek(0)
thread1 = Thread(target=Popen, args=("./runJVM.sh"),kwargs=
{"stdout":logger})
thread1.daemon = True
thread1.start()
# stdout, error = proc.communicate()
# logger.write(stdout)
logger.close()
は、私がここに 1)私はロガーに標準出力kwargsからを指定した場合(ログファイルが出力をチェックする)に直面しています二つの問題があり、それは私にそのstdoutが持っているというエラーがスローされます複数の引数が指定されました。
2)stdoutオプションを指定しないと、スレッドの出力がipython端末に表示されますが、これは私が望んでいないものです。
私が望むのは、バックグラウンドでサーバーを呼び出すことで、他の関数がjavaゲートウェイサーバーにアクセスし、ipythonから使用できるメソッドにアクセスできるようにすることです。
端末から直接実行するときに、mvn関数が正常に動作していると見なすことができます。
ありがとうございました