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

在Python脚本中执行另一个Python脚本:TDW脚本未运行问题求助

解决TDW脚本调用失败的问题

先看你代码里的核心问题:

  • 命令字符串未正确替换变量:你写的cmd = "recreate.py -json={new_path}"里的{new_path}只是字面字符串,不会被实际变量值替换,导致命令找不到指定的JSON文件。
  • subprocess调用方式有误:注释里的写法把-json=和路径拼在一起,容易触发路径含特殊字符的问题,应该拆分成独立参数。
  • 可能缺少Python解释器调用:如果系统未将.py文件关联到Python,直接写recreate.py可能无法执行,得明确用python recreate.py或python3 recreate.py。

修正后的代码示例:

import os
import subprocess

frameSize = (512, 512)
path = 'CRIPP/annotations/icqa_dataset/IID/json'
for i in range(0, 1):
    new_path = os.path.join(path, f'example_{i}.json')  # 用os.path.join避免路径拼接出错
    # 用subprocess调用,可捕获错误输出方便排查
    try:
        result = subprocess.run(
            ['python', 'recreate.py', '-json', new_path],
            check=True,
            capture_output=True,
            text=True
        )
        print("脚本运行成功:", result.stdout)
    except subprocess.CalledProcessError as e:
        print("脚本运行失败,错误信息:", e.stderr)
    
    # 若要用os.system,修复后的写法(不推荐,难捕获错误)
    # cmd = f"python recreate.py -json={new_path}"
    # exit_code = os.system(cmd)
    # if exit_code != 0:
    #     print(f"命令执行失败,退出码:{exit_code}")

额外排查方向:

  • 确认recreate.py路径:如果它不在当前工作目录,要写绝对路径(比如/home/user/scripts/recreate.py)或相对路径(比如./scripts/recreate.py)。
  • 检查JSON文件路径:打印new_path确认文件确实存在,避免拼写错误。
  • 权限问题:确保recreate.py有可读权限,用Python解释器调用无需额外可执行权限。
  • 验证TDW环境:手动运行python recreate.py -json=你的JSON路径,确认TDW本身能正常生成图像,排除环境配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:02:42