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

多控制台并行运行Dymos优化时出现SLSQP.out文件权限错误

解决Dymos多任务并行运行时SLSQP.out文件占用错误

问题根源很明确:多个SLSQP驱动实例默认都会写入同一个SLSQP.out文件,Windows系统下不允许多个进程同时读写同一个文件,所以触发了权限错误。下面是几个直接可行的解决办法:

  • 给每个任务指定独立的输出文件
    在初始化SLSQP驱动时,手动设置不同的输出文件名,让每个任务的日志文件互不干扰。示例代码如下:

    import openmdao.api as om
    from dymos import Phase, Trajectory
    
    # 初始化问题和驱动
    prob = om.Problem()
    driver = prob.driver = om.ScipyOptimizeDriver()
    driver.options['optimizer'] = 'SLSQP'
    # 给当前任务设置唯一的输出文件名,比如对应任务(1/A)就设成这个
    driver.options['output'] = 'SLSQP_task_1A.out'
    # 后续添加你的Dymos轨迹、相位等配置...
    

    其他控制台的任务就改成SLSQP_task_1B.out这类不同的名字即可。

  • 清理残留的Python进程
    有时候之前的任务没正常终止,后台进程还在占用SLSQP.out文件。打开Windows任务管理器,找到所有名为python.exe或pythonw.exe的进程,关掉那些和Spyder相关的残留进程,再重新启动任务。

  • 调整Spyder的运行配置
    打开Spyder的Tools > Preferences,进入Run选项卡,勾选Run in a dedicated console for each file,确保每个任务运行在完全独立的进程空间里,减少文件共享冲突的概率。

  • 临时禁用输出文件(如果不需要日志)
    要是你不需要SLSQP的输出日志,可以直接关闭文件生成:

    driver.options['output'] = None
    

    这样就不会创建SLSQP.out文件,自然也就不会有占用冲突了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:41:10