node.jsでpythonを実行する方法

1.作ったきっかけ

ある時、node.jsでpythonを実行するプログラムを作ろうと思った。そして調べてみてpython-shellというものがあったがうまく動作しなかったため自分で作った。

2.プログラム

const {exec} = require("child_process");                          //child processモジュールをインポート
const fs = require("fs");                                         //fsモジュールをインポート
exports.runpython = function(code,_function_ = function(output){  //runpythonという関数をモジュール化。また実行終了時に呼び出される既定の関数を定義
    return output                                                 //出力を戻り値とする
}){
    fs.writeFileSync("./code.py",code)                            //code.pyというファイルにコードを書く
    exec("py code.py",(err,stdout,stderr) => {                    //py code.pyを実行(エラーが出る場合はpy code.py を python code.pyと書き直す)
        _function_(stdout + stderr)                               //実行終了時に呼び出される関数に出力を引数を入れる
    })
}

3.使い方

使用例

var python = require("プログラムをインストールした場所を入力してください")   //プログラムをインポート
python.runpython("print('hello')\nprint('world')");                     
//print('hello')
//print('world')を実行
//出力結果
//hello
//world

pythonがインストールされていることを前提にプログラムを考えています。インストールはこちらからインストールしてください。

4.難しかったこと

・実行したときに文字化けしてしまった。

・pythonの実行コマンドがバージョンに違っていた。

コメント

タイトルとURLをコピーしました