在Ubuntu bash shell中,我可以使用命令行“源”(例如:source $OCSSWROOT/OCSSW_bash.env
)从.env文件中设置环境变量。
但是source
不是python中的函数。
那么,如何通过python中的.env文件设置环境变量?
'l2gen'是SeaDAS的命令行程序,NASA支持该程序来处理海洋卫星数据。我可以在bash shell中运行它。现在,更多程序需要使用python脚本进行编码,而“ l2gen”就是其中之一。
但是需要在python脚本中再次设置环境变量。 根据谷歌搜索结果,我喜欢在python中设置环境变量的一些方法。但是缺少有关.env文件的信息。
在Linux bash shell中,我通过vim和source设置了环境变量:
vim .profile
export OCSSWROOT=[SeaDAS_install_dir]/ocssw (adding this in the profile
file and then save/exit)
source $OCSSWROOT/OCSSW_bash.env
其中:SeaDAS_install_dir是我安装软件SeaDAS的目录。
我尝试如下添加环境变量:
import subprocess
if __name__=='__main__':
l2cmdtest = 'l2gen -h'
new_env = os.environ.copy()
new_env['OCSSWROOT'] = '/usr/local/seadas-7.5.3/ocssw'
new_env['OCSSWROOT'] = 'OCSSWROOT/OCSSW_bash.env'
eturnCodetest = subprocess.call(l2cmdtest, shell=True)
其中:'l2gen -h'是可以在bash shell中运行的程序。
执行python脚本,然后出现错误:
/bin/sh: 1: l2gen: not found
答案 0 :(得分:1)
python-dotenv软件包可以为您完成繁重的工作:
from dotenv import load_dotenv
load_dotenv(dotenv_path='OCSSW_bash.env')