首页 > 解决方案 > 我可以将 python 文件中设置的环境变量加载到 bash 脚本吗?

问题描述

我正在尝试从 bash 脚本访问在 python 文件中设置的常量。这些常量将被 python 文件和 bash 脚本访问。起初我想只在 python 中设置变量,如:

import os
...
constant_variable=1
constant_path='/path/to/file'

ETC...

接着

source constants_file.py

在 bash 脚本中。

但是我被告知要在 python 中将这些常量设置为环境变量,因为 python 文件可能会包含我以后不想使用“source”加载到 bash 中的内容。

我试过在python中做这样的事情......

os.environ['CONSTANT_VARIABLE'] = '1'
...

constant_variable = int(os.environ.get('CONSTANT_VARIABLE'))

然后像这样在bash中访问它......

constant_variable=${CONSTANT_VARIABLE}

这不起作用,因为我不再使用 source 从 python 文件中读取常量...

我不知道这是否可能,但是有没有办法只导入由 python 文件创建的环境变量而不获取整个文件?还是我离这里很远?

谢谢!

标签: pythonbashenvironment-variables

解决方案


如果在python中设置环境变量,只会为进程的子进程设置。除非您从 python 进程运行 bash 脚本,否则您可能需要生成一个文件以使用 bash 进行源代码,或者只需在 bash 中定义变量,然后在 python 中读取它们。


推荐阅读