node.js
のchild_process.spawn
を電子アプリケーション(node.js)経由でPythonスクリプトを実行するために使用します。私はそこには問題はありませんが、、node.js
を使用して、端末(MacOSの)上のPythonスクリプトを実行する場合: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すでに運がない別の環境を設定しようとしました。
編集:ここでは
は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フレームワークを使用しています。 node.js
アプリで同じことをどうすれば確実にすることができますか?
pythonスクリプトprint/log sys.pathを持っています。 Pythonのインストールが存在することを確認してください。 http://stackoverflow.com/questions/897792/where-is-pythons-sys-path-initialized-from –
@StephenRauch、あなたの提案のおかげで、私は質問を編集しました。 nodejsにその環境を簡単に設定する方法はありますか? – xAlien95