You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需修改PYTHONPATH,在Python脚本中导入外部参数文件?

无需修改PYTHONPATH加载外部参数文件的方法

以下两种方法可以满足你的需求,不需要修改环境变量:

方法一:直接读取参数文件内容执行(完全贴合"复制代码到脚本"的效果)

直接读取input.py的文件内容,通过exec执行,参数会直接进入当前脚本的命名空间,和把代码复制过来执行的效果完全一致:

import sys

# 获取命令行传入的参数文件路径
inp_file = sys.argv[1]

# 读取文件内容并执行
with open(inp_file, 'r', encoding='utf-8') as f:
    exec(f.read())

# 之后可直接使用input.py中定义的变量
# 示例:print(var)、print(my_list)

这种方式不需要考虑文件所在目录,只要命令行传入正确的路径(相对或绝对路径都行)即可,参数直接在当前脚本环境中可用。

方法二:用importlib规范加载参数模块(结构化管理参数)

如果希望参数被结构化管理,避免污染当前脚本命名空间,可以用importlib.util模块加载外部文件为模块,同样不需要修改PYTHONPATH:

import sys
import importlib.util

inp_file = sys.argv[1]

# 根据文件路径创建模块规范
spec = importlib.util.spec_from_file_location("sim_params", inp_file)
# 创建模块对象
sim_params = importlib.util.module_from_spec(spec)
# 执行模块内容
spec.loader.exec_module(sim_params)

# 通过模块对象访问参数
# 示例:print(sim_params.var)、print(sim_params.my_list)

这种方式会把input.py的内容封装到一个模块对象中,参数都作为模块的属性存在,更适合参数较多、需要清晰区分脚本自有变量和外部参数的场景。

内容的提问来源于stack exchange,提问作者nougako

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 02:44:54