python - 特定于目录的环境变量
问题描述
我有一个这样的目录系统:
|- /root/path
|- config.json
|- script1.py
|- a
|- script2.py
|- b
|- c
|- d
|- script3.py
script1.py
, script2.py
,script3.py
都使用“根路径”(/root/path)来操作。现在我已经将“/root/path”硬编码到 py 文件中。但是,假设我移动或重命名了根路径;我将不得不返回所有这些脚本并更改根路径。
我知道“解决”这个问题的一种方法是让 .py 文件了解它们的相对位置,例如从 .py 文件script3.py
读取../../../config.json
。但是,在某些时候,这会变得非常乏味,尤其是在设置大量脚本的情况下。
我想知道是否有一种方法可以说“此目录中从任何地方运行的任何脚本都可以访问某些环境变量”。“从哪里来”是斜体的,因为没有这个限制,我认为 direnv 可以正常工作。
解决方案
您可以定义一个变量,例如 my_root = '/root/path',并在脚本中定义相对于 my_root 的所有其他路径。例如,
config_json_path = os.path.join(my_root, 'config.json')
推荐阅读
- forms - 可以使用本地存储中的值来验证年龄吗?
- c# - 如何在服务器端异步检索 Dynamics CRM 365 数据
- android - 错误 - 意图过滤器:缺少 BrowserTabActivity。使用 AzureAD MSAL Lilbary 时
- javascript - 无法将图像元素从一个文件传输到另一个文件
- php - 如何在php中的while循环内分配一个数组
- android - 如何在滑动视图后修复 viewpager 适配器行为不一致的状态
- dialogflow-es - 识别句子中的“a”并在 Dialogflow 中表示为 1 @sys.number
- android - 无法实现 androidx.appcompat.appcompat:1.0.0
- jestjs - 开玩笑嘲笑 axios 的请求方法给出错误
- google-sheets - 如何将 Google Sheets 链接到 IBM Watson Assistant?