我已经将以下行添加到/etc/environment :
FOO_DEPLOYMENT_ENV="vbox"
通过SSHlogin后,我可以echo $FOO_DEPLOYMENT_ENV ,当然,也可以将vbox输出到shell。 如果我打开一个Python shell并运行os.getenv('FOO_DEPLOYMENT_ENV') ,它将返回'vbox' ,但是在我的Python应用程序中,当它由uWSGI(如www-data用户)运行时,它看不到相同的代码环境variables。
显然,这不是uWSGI的问题,而是我对环境variables的理解,或者它们是如何正确设置的,以及它们可以被检索的上下文的问题。 我在做什么或理解不正确?
总之你不能。 一个环境variables被允许存在于一个特定的shell实例中,并且可以被导出到子shell。 但是,绝不能将环境variables导出到更多的父shell,当然也不能在任何inheartenceshell链之外。
但是,您可以按照build议将条目存储在文件中,然后通过“。”手动导入它们。 命令在SH衍生物或CSH衍生物的source命令。
我个人使用tcsh作为我的交互式shell。 如果您使用的是可以放置一个名为cwdcmd的别名,它将在每个input的命令之间执行一组命令。 我使用这个工具将主机名,用户名和当前工作目录放在我的命令提示符中。 使用这个工具你可以把一个include指令调整你的环境在每个命令提示符之间。