Psynet 4.0.0搭配Dallinger 7.6部署报错:image_base_name不是有效配置键
问题解决思路:Psynet 4.0.0搭配Dallinger 7.6部署报
image_base_name无效错误 报错根因
Dallinger 7.6版本在Heroku生产环境加载配置时默认开启严格校验模式,所有出现在配置文件中的参数键必须提前在Dallinger配置系统中完成注册,未注册的键会直接抛出KeyError。本地部署时不会触发严格校验逻辑,因此不会出现该报错。
可行解决步骤
- 注册自定义配置键:如果
image_base_name是你实验代码或者Psynet需要用到的有效参数,在实验主入口文件(通常为experiment.py)中提前完成配置注册,示例代码如下:
import dallinger # 注册自定义配置键,参数依次为:键名、数据类型、默认值、参数描述 dallinger.config.register_custom_key("image_base_name", str, "", "Base name for experiment image resources")
- 清理废弃配置:如果
image_base_name是已经废弃不用的参数,直接删除项目中所有配置文件(config.txt、local_config.txt)以及环境变量中对应的配置项即可。 - 对齐依赖版本:Psynet 4.0.0默认适配的Dallinger版本高于7.6,低版本Dallinger没有预注册Psynet新增的配置键。可以将Dallinger升级到Psynet 4.0.0匹配的版本,避免手动注册所有新增配置键。
- 应急绕过校验(不推荐生产环境使用):如果需要快速验证部署,可以临时修改
dallinger/config.py中加载配置时调用extend方法的strict参数,将strict=True改为strict=False,即可跳过配置键合法性校验。
内容的提问来源于stack exchange,提问作者Manuel Anglada Tort
相关产品推荐
相关产品推荐

