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

通过SnakeViz运行脚本时抛出FileNotFoundError异常

问题表现
  • IDE内直接运行Python脚本可正常执行,无报错
  • 终端执行python -m cProfile <script_file_name>命令分析同一份脚本时,触发FileNotFoundError异常

最小复现代码如下:

import pandas as pd

x = pd.read_excel(<file_name>)
根因分析

报错核心是两种运行场景下的程序工作目录不统一:

  • IDE运行脚本时,默认会将脚本文件所在的目录设置为程序工作目录,代码里写的相对路径可以正常匹配到同目录下的Excel文件
  • 终端执行cProfile命令时,程序的工作目录是执行命令时终端所处的目录,如果这个目录不是脚本存放目录,相对路径解析后就找不到目标Excel文件,直接触发文件不存在的报错。
可行解决方案
  • 临时解决:执行cProfile命令前,先通过cd命令切换到脚本所在目录,再运行分析命令,保证工作目录和IDE运行时一致即可。
  • 永久规避:不要在代码里直接写依赖工作目录的相对路径,改为基于脚本自身位置拼接文件绝对路径,不管在什么场景下运行脚本都能准确定位到目标文件。
    基于os模块的实现:
    import os
    import pandas as pd
    
    # 获取当前脚本的绝对所在目录
    current_script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接目标Excel文件的完整路径
    target_excel_path = os.path.join(current_script_dir, <file_name>)
    x = pd.read_excel(target_excel_path)
    
    Python 3.4+ 也可以用pathlib实现,写法更简洁:
    from pathlib import Path
    import pandas as pd
    
    current_script_dir = Path(__file__).resolve().parent
    target_excel_path = current_script_dir / <file_name>
    x = pd.read_excel(target_excel_path)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:42:11