私はnode.jsからpythonファイルを呼び出そうとしています。 これはフロー/構造です:node.jsが(フロントエンドからソケット経由で)特定の値を受け取ったとき - pythonファイルを実行します(特定の入力を必要としません) - pythonファイルは.pngファイルを作成して同じディレクトリに保存します。Linuxでpythonとnode.jsを通信するためにchild_processモジュールを使用する方法はありますか?
だから、私は...
を私はNPMモジュールでのpythonシェルを試してみましたが、それはエラーを与え続けるだとそれは私がその.jsファイルがどこにあるかにコピー/インポートされたすべてのパッケージを移動したいように思えます代わりのものを探して、child_processモジュールを見つけました。 以下の問題は、私のコンピュータがLinuxではなくWindowsであるため、のvar pythonExecutableを以下のコードに入れるべきかどうかわかりません。
上記の方法に関するご意見をお待ちしております。
// The path to your python script
var myPythonScript = "script.py";
// Provide the path of the python executable, if python is available as environment variable then you can use only "python"
var pythonExecutable = "python.exe";
// Function to convert an Uint8Array to a string
var uint8arrayToString = function(data){
return String.fromCharCode.apply(null, data);
};
const spawn = require('child_process').spawn;
const scriptExecution = spawn(pythonExecutable, [myPythonScript]);
// Handle normal output
scriptExecution.stdout.on('data', (data) => {
console.log(uint8arrayToString(data));
});
// Handle error output
scriptExecution.stderr.on('data', (data) => {
// As said before, convert the Uint8Array to a readable string.
console.log(uint8arrayToString(data));
});
scriptExecution.on('exit', (code) => {
console.log("Process quit with code : " + code);
});
ありがとう!私はpython3で動作していると仮定して、代わりに 'python3'を入力するだけです。 – nysun1103
はいできます。 Pythonコマンドを使ってpython3を実行したい場合は 'alias python = python3'を実行することもできます。 すべての質問が答えであれば、これを解決の質問にすることができます。 –