Невозможно потребовать('child_process').spawn, консоль говорит, что spawn не является функцией, пакет узла Python-Shell

Я пытаюсь использовать внешний пакет:

npm install [python-shell][1]

Прямо сейчас у меня есть только базовый файл js с примером, который поставляется с пакетом:

console.log('hey in main.js')
var PythonShell = require('python-shell');

PythonShell.run('./my_script.py', function (err) {
  if (err) throw err;
  console.log('finished running python script');
});

Наряду с my_script.py и т. д.

Когда я запускаю сервер, console.log говорит:

Uncaught TypeError: spawn is not a function

В index.js пакета python-shell порождение требуется правильно (аналогичный случай< /а>):

var spawn = require('child_process').spawn;

И позже он используется в пакете следующим образом:

this.childProcess = spawn(pythonPath, this.command, options);

Однако spawn кажется функцией:

master$>node
> require('child_process')
{ ChildProcess: 
   { [Function: ChildProcess]
     super_: 
      { [Function: EventEmitter]
        EventEmitter: [Circular],
        usingDomains: true,
        defaultMaxListeners: 10,
        init: [Function],
        listenerCount: [Function] } },
  fork: [Function],
  _forkChild: [Function],
  exec: [Function],
  execFile: [Function],
  spawn: [Function],
  spawnSync: [Function: spawnSync],
  execFileSync: [Function: execFileSync],
  execSync: [Function: execSync] }

Поэтому я не уверен, почему консоль говорит, что это не функция.


person imyjimmy    schedule 23.06.2016    source источник


Ответы (2)


Я столкнулся с той же проблемой, пытаясь запустить такой код

var spawn = require('child_process')
var child = spawn('pwd')

приведет к ошибке

 TypeError: spawn is not a function
at Object.<anonymous> (/home/sailor/advancedNode/child_cluster_exec/spawn.js:5:13)

однако добавление спавна к требованию исправило это.

 var spawn = require('child_process').spawn
 var child = spawn('pwd')

OR

      var {spawn} = require('child_process')

это нормально работает....

person Barrard    schedule 20.06.2017
comment
похоже, не работает в приложениях reactjs: TypeError: spawn is not a function - person Francois; 08.04.2018
comment
такая же проблема с реагирующим приложением:/ - person chitzui; 27.09.2018
comment
spawn — это функция узла. Вы пытаетесь запустить это в браузере ?? Работает только на вашем сервере - person Barrard; 16.01.2019

Используйте это под Windows:

const cp = require('child_process');
const cmd = cp.spawn('cmd');
cmd.on('exit',(data)=>{
  console.log(data);
});

spawn не является «нормальной» функцией, как обычно, у нее нет строки имени по умолчанию, как у других.

person Jony    schedule 17.09.2019