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

如何在MacBook的VSCode环境下通过Python执行GAMS文件?

问题

在MacBook的VSCode环境下,尝试通过Python文件运行GAMS文件。目前已能用subprocess模块打开目标GAMS文件,但仅打开不执行,代码如下:

import subprocess
subprocess.run(['open', "/Users/tk/GAMS/sim.gms"], check=True)

需求是实现执行GAMS文件,且GAMS执行完成后Python程序能继续运行,同时觉得GAMS官方教程过于复杂没理解。

解决方案

你之前用open命令只是调用系统默认程序打开GAMS文件,并没有触发模型执行。要真正运行GAMS模型,需要直接调用GAMS的命令行执行器,而非打开文件本身。

步骤1:确认GAMS命令行工具路径

在Mac上,GAMS命令行工具的默认安装路径类似/Applications/GAMS/<版本号>/gams(比如/Applications/GAMS/45.1/gams)。你可以先在终端输入gams测试,如果能直接运行,说明路径已加入系统环境变量;如果不行,就需要使用完整路径调用。

步骤2:修改Python代码

用subprocess直接调用GAMS命令行工具,传入你的GAMS文件路径作为参数。subprocess.run()默认会等待GAMS执行完成后,才继续运行后续Python代码:

import subprocess

# 替换为你的GAMS执行器路径和GAMS文件路径
gams_exec_path = "/Applications/GAMS/45.1/gams"
target_gms_file = "/Users/tk/GAMS/sim.gms"

# 执行GAMS模型,check=True会在GAMS执行出错时抛出异常
subprocess.run([gams_exec_path, target_gms_file], check=True)

# GAMS执行完成后,以下代码会继续运行
print("GAMS模型执行完毕,Python程序继续执行后续逻辑")

补充说明

  • 若gams已在系统环境变量中,可以直接用["gams", target_gms_file]作为参数,无需写完整路径。
  • 如果需要捕获GAMS的输出日志,可以添加stdout=subprocess.PIPE和stderr=subprocess.PIPE参数,后续通过返回对象的stdout和stderr属性查看输出内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:35:49