OrukRed
@OrukRed (oruk red)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Nuxtでnodejsからpythonスクリプトの呼び出しでエラー

解決したいこと

Nuxtを用いてnode.jsからpythonスクリプトを呼び出したいです。
現在child_processを用いてpythonスクリプトの呼び出しを行おうとしていますが、
npm run devを実行後下記のエラーが発生します。

発生している問題・エラー

 ERROR  Failed to compile with 1 errors

This dependency was not found:                                          friendly-errors 
                                                                        friendly-errors   
* child_process in ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/SearchExecute.vue?vue&type=script&lang=js&
                                                                        friendly-errors   
To install it, you can run: npm install --save child_process            friendly-errors   
i Waiting for file changes                                                              
i Memory usage: 217 MB (RSS: 307 MB)                                                    
i Listening on: http://localhost:3000/                                                    

 WARN  Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\hiberfil.sys'
 WARN  Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\pagefile.sys'
 WARN  Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\swapfile.sys'
 ERROR  ENOENT: no such file or directory, stat 'C:\Users\All Users' 

 ERROR  ENOENT: no such file or directory, stat 'C:\Users\Default User'           

該当するソースコード

SampleComponent
<script>
export default {
  components: {
  },
  methods: {
      //python側との通信
      var spawn = require("child_process").spawn;
      var pythonProcess = spawn('python',["PythonScript.py"]);
      pythonProcess.stdout.on('data',(data)=>{
          console.log(data);
      });

    },
  },
};
</script>
PythonScript.py
import sys

if __name__ == '__main__':
    print("TEST")
    sys.stdout.flush()

自分で試したこと

npm install --save child_process
の実行を行いましたが、その後も同様のエラーが発生します。

0

1Answer

コンポーネント内の処理は基本的にブラウザで実行されますから、そこでNode.jsのモジュールを利用するのは難しいと思います。

1Like

Comments

  1. @OrukRed

    Questioner

    ご回答ありがとうございます。
    NuxtでNode.jsのモジュールを利用する場合はどこで実行すればよいのでしょうか?
  2. そもそもNuxt.jsでやろうというアプローチが根本的に間違えている気がします。
    外部スクリプトを呼び出すことで何を実現しようとしているのでしょうか?
  3. @OrukRed

    Questioner

    pixivpyを用いて任意の画像を取得しようとしていました。
    ただ、これを実現するのであればaxiosで普通にリクエスト飛ばしたほうが良い気がしてきています…
  4. そうですね。それが良いと思います。
  5. @OrukRed

    Questioner

    ありがとうございました。
    クローズといたします。

Your answer might help someone💌