我正在使用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什麼是「被拒絕」的環境?任何機會,你可以推動我在正確的方向鏈接? –