我正在使用PHP和Laravel框架,并使用.env来设置我的环境变量。然后我从我的PHP环境中调用python脚本,并将结果返回给PHP。我的问题是,在Python中设置的默认os.environ
正在被我的PHP环境覆盖。由PHP覆盖的Python ENV文件ENV
我的代码(例子):
<?php
//Setting up the laravel environment and loading in the $_ENV variable
exec('python script.py');
,然后我的Python:
print os.environ
print os.environ
将返回所有的PHP环境安装过程中设置我的环境变量。所有默认的环境变量,如PATH,都未被设置或被新的env覆盖。
我花了一段时间来诊断问题。然而,由于我对Python的知识有限,如何解决这个问题证明是有问题的。有没有一种方法可以在不影响PHP环境的情况下重新初始化Python环境,反之亦然?基本上我需要两个进程在环境方面相互独立,或者我需要设置python环境,然后在返回到PHP之前使用旧值更新它。
如果有人知道如何去做,你会成为一个救生员。
感谢您的回复。你有什么想法我可能能够检索到默认的python环境/重新初始化那个环境吗? –
@JamesSpence没有“默认的python环境”。环境*始终*来自父进程。如果这是你想要的,你可以使用'env'命令强制一个“不受欢迎的”环境。 –
@EtanReisner什么是“被拒绝”的环境?任何机会,你可以推动我在正确的方向链接? –