在我的djangosettings.py
文件中,我想调用一个envvars.sh
文件来导入诸如DB\u凭证之类的内容。我试着这样做:
if not os.environ.get('DB_PASSWORD'):
subprocess.call(['source', 'envvars.sh'])
DB_PASSWORD = os.environ.get('DB_PASSWORD', '')
它从终端开始工作,执行$ source envvars.sh
,但不是从python内部。还有别的办法吗
Tags:
你不能像这里描述的那样做。但也许最好退一步问问你为什么要这么做
既然您使用了Django标记,我们是否可以假设您正在从其他进程(例如,apachewsgi应用程序)运行Django应用程序?然后,举个例子,您只需在/etc/apache2/envvars中定义这些变量,就可以在Apache进程中使用它们(从而在Django应用程序中使用这些代码)。类似地,在/etc/environment中定义变量可能会对您有所帮助。它只取决于应用程序的调用/部署结构
此外,将变量存储在} 之类的模块读取该文件(而不是对Shell脚本执行
.env
文件中,并使用^{subpprocess
调用,这是不安全的),并执行以下操作:这也是个好办法。如果您使用的是Django,那么实际上可以在
dev
环境中的settings.py
文件中初始化它相关问题 更多 >
编程相关推荐