Использование child_process.spawn
в node.js
для выполнения скрипта python через электронное приложение (node.js). Если я бегу сценарий питона на терминале (MacOS) нет никаких проблем, но, используя node.js
и:Node.js child_process выполнение скрипта Python, вызывающего ошибки при импорте модулей
const spawn = require('child_process').spawn
let ls = spawn('python', ['runserver.py','--help'], {
cwd: __dirname,
detached: true
})
я получаю ошибки из python
неудачных импорта модулей, таких как:
Traceback (most recent call last):
File "runserver.py", line 17, in <module>
from queue import Queue
ImportError: No module named queue
I «Я уже пробовал устанавливать разные среды без везения.
Edit:
Вот журналы sys.path
:
из кода через
child_process
[ '/Users/xAlien95/Desktop/test.app/Contents/Resources/app', '/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Library/Python/2.7/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC' ]
от исполнения кода через терминал
[ '/Users/xAlien95/Desktop/test.app/Contents/Resources/app', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages', '/usr/local/Cellar/protobuf/3.1.0/libexec/lib/python2.7/site-packages' ]
Итак, в терминале используется homebrew
скачанный Python framework. Как я могу гарантировать, что то же самое произойдет в приложении node.js
?
Имейте скрипт python print/log sys.path. Убедитесь, что установлена python. http://stackoverflow.com/questions/897792/where-is-pythons-sys-path-initialized- from from –
@StephenRauch, спасибо за ваше предложение, я отредактировал вопрос. Есть ли способ легко установить эту среду в nodejs? – xAlien95