Linux
如何使用 uWSGI 將環境變數傳遞給 WSGI 腳本?
我已將以下行添加到
/etc/environment
:FOO_DEPLOYMENT_ENV="vbox"
通過 SSH 登錄後,我
echo $FOO_DEPLOYMENT_ENV
當然可以看到vbox
shell 的輸出。如果我打開 Python shell 並執行os.getenv('FOO_DEPLOYMENT_ENV')
,它將返回'vbox'
,但我的 Python 應用程序中的程式碼相同,當由 uWSGI(作為www-data
使用者)執行時,它看不到環境變數。顯然,這不是 uWSGI 的問題,而是我對環境變數的理解,或者它們如何正確設置,以及可以在其中檢索它們的上下文的問題。我在做什麼或理解不正確?
簡而言之,你不能。允許環境變數存在於特定的 shell 實例中,並且可以導出到子 shell。但在任何情況下,您都不能將環境變數導出到更父 shell,當然也不能在任何 shell 的核心鏈之外。
但是,您可以按照建議將條目儲存在文件中,然後通過“。”手動導入它們。在 SH 衍生品或
source
CSH 衍生品的情況下發出指令。我個人
tcsh
用於我的互動式外殼。如果您正在使用它,您可以放置一個名為的別名,該別名cwdcmd
將在每個輸入的命令之間執行一組命令。我使用這個工具將主機名、使用者名和目前工作目錄放在我的命令提示符中。使用此工具,您可以include
在每個命令提示符之間放置一個指令來調整您的環境。