python - 我可以将 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 文件创建的环境变量而不获取整个文件?还是我离这里很远?
谢谢!
解决方案
如果在python中设置环境变量,只会为进程的子进程设置。除非您从 python 进程运行 bash 脚本,否则您可能需要生成一个文件以使用 bash 进行源代码,或者只需在 bash 中定义变量,然后在 python 中读取它们。
推荐阅读
- c# - 访问令牌在 60 分钟后过期。需要扩展或刷新令牌,但没有可用的刷新令牌。还有其他方法可以让它工作吗?
- c# - Application.Exit() 未退出应用程序或进程
- r - 将列中前 20% 的最高值返回为 1,并将其余数字设为 0
- c# - 如何刷新文本文件中的文本
- c# - 如何在刷新时保留传递的参数?
- javascript - json递归函数不发回完整的Json对象
- android - 如何将用户重定向到 Flutter 中的设置 -> 安全 -> 通知访问?
- firefox - Firefox 不缓存图像
- gradle - 如何从 java main 方法运行黄瓜测试?
- android - 无法在 Android 12 中使用 onCapabilitiesChanged 获取 WIFI SSID