我设置了一个php脚本来从html页面运行我的python包。我的python模块通过~/.bash_profile
的系统变量调用一些外部专有工具。
目的:当我使用php执行我的脚本时,没有可用的环境变量(os.getenv()
返回None
)。
问题:将系统变量从PHP路由到python的最有效方法是什么?
提前致谢
答案 0 :(得分:1)
此函数:http://php.net/proc_open具有名为$env
的第五个参数,用于将任何环境变量传递给新进程。
这是我用来运行它的最短代码:
$proc = proc_open(
"php demo-2.php", // put your python script here
[
0 => ['pipe', 'r'],
1 => ['pipe', 'w'],
2 => ['pipe', 'a'],
],
$pipes,
null,
[
'SECRET' => $secret,
]
);
print stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($proc);
BTW我的demo-2.php
仅包含<?php print_r($_ENV); ?>
。
PS。如果您使用PHP进行尝试并且只打印空数组,请编辑php.ini
并将variables_order
设置为包含E
,该$_ENV
负责填充{{1}}变量。