在节点js中设置env变量并在python脚本中使用

2024-05-15 04:03:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在node js app中设置一个env变量: process.env.data = "data-env";
使用:print(os.environ["data"])在python脚本中访问相同的env变量

but getting error throw err;
        ^

Error: KeyError: 'data'
    at PythonShell.parseError (H:\NodeJS\node_modules\python-shell\index.js:184:17)
    at terminateIfNeeded (H:\NodeJS\node_modules\python-shell\index.js:98:28)
    at ChildProcess.<anonymous> (H:\NodeJS\node_modules\python-shell\index.js:89:9)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
    ----- Python Traceback -----
    File "script.py", line 5, in <module>
      print(os.environ["data"])
    File "C:\Program Files\Anaconda3\lib\os.py", line 725, in __getitem__
      raise KeyError(key) from None

使用nodeJs中的以下代码运行py脚本

^{pr2}$

我做错什么了吗?在


Tags: pyenvmodulesnodedataindexosjs
1条回答
网友
1楼 · 发布于 2024-05-15 04:03:26

修改process.env将更改当前进程和(可选)子进程的环境变量。在

所以,除非您是从节点.js应用程序中设置的环境变量节点.js应用程序无法从Python脚本访问。在

编辑:

PythonShell接受第二个参数options,可以使用它将环境变量向下传播到子进程。在

var pyshell = new PythonShell(myPythonScriptPath, {
  env: process.env,
});

相关问题 更多 >

    热门问题