Linux

如何使用 uWSGI 將環境變數傳遞給 WSGI 腳本?

  • December 20, 2012

我已將以下行添加到/etc/environment

FOO_DEPLOYMENT_ENV="vbox"

通過 SSH 登錄後,我echo $FOO_DEPLOYMENT_ENV當然可以看到vboxshell 的輸出。如果我打開 Python shell 並執行os.getenv('FOO_DEPLOYMENT_ENV'),它將返回'vbox',但我的 Python 應用程序中的程式碼相同,當由 uWSGI(作為www-data使用者)執行時,它看不到環境變數。

顯然,這不是 uWSGI 的問題,而是我對環境變數的理解,或者它們如何正確設置,以及可以在其中檢索它們的上下文的問題。我在做什麼或理解不正確?

簡而言之,你不能。允許環境變數存在於特定的 shell 實例中,並且可以導出到子 shell。但在任何情況下,您都不能將環境變數導出到更父 shell,當然也不能在任何 shell 的核心鏈之外。

但是,您可以按照建議將條目儲存在文件中,然後通過“。”手動導入它們。在 SH 衍生品或sourceCSH 衍生品的情況下發出指令。

我個人tcsh用於我的互動式外殼。如果您正在使用它,您可以放置​​一個名為的別名,該別名cwdcmd將在每個輸入的命令之間執行一組命令。我使用這個工具將主機名、使用者名和目前工作目錄放在我的命令提示符中。使用此工具,您可以include在每個命令提示符之間放置一個指令來調整您的環境。

引用自:https://serverfault.com/questions/459506