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

Line profiler运行%lprun -f仅显示数值不显示行内容如何解决

问题现象

使用line_profiler的%lprun -f命令时,工具可正常输出运行统计数据,但仅显示统计数值、不展示对应行的代码内容,抛出如下目录相关错误提示:

Timer unit: 1e-07 s

Total time: 0.962042 s

Could not find file C:\Users\my name\AppData\Local\Temp\ipykernel_20788\3519952779.py
Are you sure you are running this program from the same directory
that you ran the profiler from?
Continuing without the function's contents.

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
     1                                           
     2         1         24.0     24.0      0.0  
     3         6        211.0     35.2      0.0  

运行%lprun?查询工具路径,返回结果为c:\users\my name\anaconda3\lib\site-packages\line_profiler\ipython_extension.py。

问题原因

该问题是旧版本line_profiler的兼容bug导致:

  1. 对Windows下带空格的路径(比如示例路径里的my name用户目录)解析存在错误,无法正确读取IPython/Jupyter生成的临时单元格代码文件
  2. 对Jupyter内核生成的临时py文件的路径识别逻辑存在缺陷,无法关联到内存中定义的单元格函数对应代码
    问题和工具安装位置、程序运行目录没有直接关系。
已验证无效的方案
  • 在代码所在同级目录重新安装line_profiler
  • 尝试将ipython_extension.py复制到代码目录,无法定位到AppData文件夹
  • 将代码保存为.py格式文件后重新运行程序
可行解决方案
  • 直接升级line_profiler到最新版本,旧版本存在的Windows带空格路径解析错误、Jupyter临时文件识别缺陷均已在新版本修复,执行命令完成升级:
    pip install --upgrade line_profiler
    
    升级后彻底关闭Jupyter内核,重启服务后再运行%lprun即可正常展示每行代码内容。
  • 若升级后问题仍存在,不要在Jupyter单元格内直接定义待分析函数:将需要做性能分析的函数写入本地磁盘可正常访问的.py文件,在notebook中通过import语句导入目标函数后,再调用%lprun执行分析,工具可直接读取对应py文件的代码,不会触发文件找不到的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:31:11