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

使用subprocess.Popen调用Python脚本报错的解决咨询

解决subprocess.Popen调用Python脚本的FileNotFoundError问题

出现这个错误的核心原因是subprocess.Popen默认不会解析字符串形式的命令参数,它会把整个字符串当作要执行的程序名,自然找不到对应的文件。以下是两种可靠的解决方法:

方法一:使用列表形式传递参数(推荐)

这是subprocess模块的标准用法,避免shell注入风险,同时让参数解析更准确:

import subprocess

# 将命令拆分为列表元素,依次是解释器、脚本路径、各个参数
subprocess.Popen(
    ["python3", "eclat_model.py", "-p", "-c", "raw_data_430.csv", "-C", "out-eclat_430.csv", "-m", "100"]
)

方法二:启用shell模式(不推荐,仅特殊场景使用)

如果一定要用字符串形式的完整命令,需要设置shell=True,让系统shell来解析整个命令:

import subprocess

subprocess.Popen(
    "python3 eclat_model.py -p -c raw_data_430.csv -C out-eclat_430.csv -m 100",
    shell=True
)

额外注意事项

  • 如果脚本eclat_model.py不在当前Python进程的工作目录下,需要传入脚本的绝对路径,或者通过cwd参数指定子进程的工作目录:
    # 示例:指定脚本所在目录作为子进程工作目录
    subprocess.Popen(
        ["python3", "eclat_model.py", "-p", "-c", "raw_data_430.csv", "-C", "out-eclat_430.csv", "-m", "100"],
        cwd="/path/to/your/script/directory"
    )
    
  • 确保python3在子进程的环境变量PATH中,或者直接使用python3的绝对路径(比如/usr/bin/python3)来避免路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:18:13