我想在顶级python文件settings.py中定义BASE_DIR之类的常量,并从我项目中的“所有”文件中访问这些常量,例如来自import_scripts / import_users.py和export_scripts / export_users.py(独立的帮助脚本)。
我尝试了很多不同的操作,例如从import_users.py导入settings.py relative并将其导入import_scripts / __ init__py。到目前为止没有成功。
编辑:我在脚本中添加了父文件夹,例如在import_users.py到sys.path。但是我不想一次又一次地在每个脚本中执行此操作,因此我一直在寻找一种使用常量在存储库中一次执行此操作的方法。
my_app
├── import_scripts
│ ├── import_users.py
├── export_scripts
│ ├── export_users.py
├── lib
│ ├── csv_reader.py
└── settings.py
答案 0 :(得分:0)
importlib.util方法here对我不起作用-我尝试导入的常量文件未设置为模块(没有__init__.py等)。我也不想在sys.path中添加任何内容,因为我要导入的文件仅包含特定机器学习运行的设置。也许不是很优雅,但是我所做的是:
示例代码在这里:
import os
cur_working_dir = os.getcwd()
run_settings_path = 'output/run_data/1'
path_to_settings_file = os.path.join(cur_working_dir,run_settings_path)
os.chdir(path_to_settings_file)
from settings_file import *
os.chdir(cur_working_dir)