交互式 Python:尽管正确导入了 line_profiler,但无法使 `%lprun` 工作

2024-04-03

Problem

大多数 iPython“神奇函数”对我来说立刻就可以正常工作:%hist, %time, %prun等等。但是,我注意到%lprun无法使用 iPython 找到它,因为我最初安装了它。

尝试解决

然后我发现我应该安装line_profiler模块。我已经安装了这个模块,但似乎仍然无法让魔法功能正常工作。如果我尝试打电话%lprun,iPython仍然找不到该函数。如果我用全名来称呼它(line_profiler.magic_lprun),可以找到该函数,但我根本无法让它工作。下面是我所做的一个示例(这是从“Python for Data Analysis”书中逐步获取的):

成功使用%prun

[In:]

def add_and_sum(x, y):
    added = x + y
    summed = added.sum(axis=1)
    return summed

x = randn(3000, 3000)
y = randn(3000, 3000)

add_and_sum(x, y)

正如预期的那样,我得到了一个很好的答案:

[Out:]

array([-23.6223074 , -10.08590736, -31.2957222 , ..., -14.17271747,
    63.84057725, -50.28469621])

我可以执行分析魔法功能%prun:

[In:]

%prun add_and_sum(x, y)

[Out:]

6 function calls in 0.042 seconds

Ordered by: internal time

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    1    0.020    0.020    0.029    0.029 <ipython-input-27-19f64f63ba0a>:1(add_and_sum)
    1    0.013    0.013    0.042    0.042 <string>:1(<module>)
    1    0.009    0.009    0.009    0.009 {method 'reduce' of 'numpy.ufunc' objects}
    1    0.000    0.000    0.009    0.009 _methods.py:16(_sum)
    1    0.000    0.000    0.009    0.009 {method 'sum' of 'numpy.ndarray' objects}
    1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

使用失败%lprun

但当我尝试时%lprun,我什么也得不到:

[In:]

%lprun -f add_and_sum add_and_sum(x, y)

[Out:]

ERROR: Line magic function `%lprun` not found.

如果我尝试使用其标准名称调用该函数,它也不起作用:

[In:]

line_profiler.magic_lprun -f add_and_sum.test test.add_and_sum(x, y)

[Out:]

line_profiler.magic_lprun -f add_and_sum.test test.add_and_sum(x, y)
                                       ^
SyntaxError: invalid syntax

但该库已正确导入,或者至少是这样的:

[In:]

line_profiler

[Out:]

<module 'line_profiler' from '/Users/<edit>/anaconda/lib/python2.7/site-packages/line_profiler-1.0b3-py2.7-macosx-10.5-x86_64.egg/line_profiler.pyc'>

[In:]

line_profiler.magic_lprun

[Out:]

<function line_profiler.magic_lprun>

似乎我应该配置一些额外的东西,以便我添加的这些新的神奇功能可以被识别。我通过网络搜索找不到任何东西。

我将 Spyder 作为 IDE 运行(仍然使用 iPython 作为控制台),但我也直接使用 iPython 和 iPython Notebook 进行了尝试。我在任何形式上都没有运气。


To make %lprun工作时,您需要使用以下命令将扩展加载到会话中:

In [1]: %load_ext line_profiler

查看这个笔记本 http://nbviewer.ipython.org/3062428查看一些使用魔法的示例。

此外,如果您使用 Spyder,还有第三方line_profiler插件,你可以找到here https://github.com/Nodd/spyder_line_profiler.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

交互式 Python:尽管正确导入了 line_profiler,但无法使 `%lprun` 工作 的相关文章

随机推荐

  • PHP:使用方法作为回调

    我试图使用array walk recursive对于某些事情 并想使用类的方法之一作为回调 所以尝试 array walk recursive TAINTED this gt encode 及其变体都失败了 我最终决定 array wal
  • 如何在 main() 之前调试程序崩溃

    我在 Windows 8 1 上使用 QtCreator 和 Visual Studio 2015 套件来构建我在 Linux 上开发和测试的程序 在 Linux 上它工作正常 但在 Windows 上它立即崩溃 我不知道要寻找什么 除了我
  • .htaccess 中单个 RewriteCond 的多个 RewriteRules

    我的 htaccess 中有以下命令 RewriteCond HTTP HOST www a z0 9 example com NC RewriteRule a z 2 1 2 L RewriteRule 0 9 a z 2 1 3 2 L
  • pieCSS3:不在本地四舍五入

    我正在尝试使用饼图获得圆角 ul li webkit border radius 8px 8px 0 0 moz border radius 8px 8px 0 0 border radius 8px 8px 0 0 color FFFFF
  • 从 API 控制器调用 POST 方法

    我有一个名为 MyFIlesController 的 API 控制器 在其中 我有这个方法 POST api myfiles public void Post FromBody string value 以下是我用 Fiddler 的调用方
  • 有没有java图像库?

    我是 java 图像处理新手 我的任务是重新调整网站图像的大小和比例 有没有一个简单的库可以完成这项任务 一个我必须下载 jar 的库 添加到我的项目中 我不喜欢被迫在 Windows 上安装编解码器和文件 我需要该库仅支持基本功能 Lib
  • Visual Studio 在断点处冻结

    自一周前以来 我在 VS2010 中看到了一个非常烦人的行为 当我正在调试一个项目时 调试器在断点处停止 Windows 冻结了近十秒 我说 Windows死机 是因为这段时间鼠标和键盘没用 该问题仅在我调试特定项目时发生 并且我在两台不同
  • 使用 Java 在 Mac 上以编程方式发送电子邮件(通过 Mac 邮件客户端)

    我对这个问题做了很多研究 但似乎无法为我的问题提出可靠的解决方案 我正在开发一个 Java 客户端应用程序 它 应该 允许用户从 Mac 地址簿中导入联系人 方法是以列表格式获取联系人 并允许用户选择一个子集 全部 然后单击一个按钮 将 邀
  • Java中的Goto语句[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我执行了下面的代码Eclipse http en wikipedia org wiki Eclipse 28software 29 但是GO
  • 人眼注视检测:识别用户正在看板上的位置[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在开发一个项目 上面有板和相机 目标是识别正在看黑板的学生 并确定他们视线的位置 在黑板上 目前 我计划从以下几个方面来应对挑
  • 如何关闭 ASP.NET 必填字段验证器“失去焦点”行为

    我有一些代码 其中一个控件需要两个单独的必填字段验证器 两个验证器都位于单独的验证组中 然后由两个单独的按钮进行验证 当单击按钮时 这种方法效果很好 但如果我在文本框中输入一个值然后将其删除 两个验证器都会显示 有没有办法关闭这种 失去焦点
  • boto s3 Bucket 与 get_bucket

    我尝试访问存储桶内的密钥 尽管我有该密钥的权限 但我没有该权限 为了能够做到get key this is my key 我需要桶对象 conn boto connect s3 key secret key my bucket conn g
  • 实体框架 4 的 System.Reflection.ReflectionTypeLoadException

    我在 Windows 窗体应用程序中使用 EF4 每当我在未安装 Visual Studio 2010 的计算机中运行发布文件时 我都会遇到问题 我总是收到此错误 System Reflection ReflectionTypeLoadEx
  • 如何修改Makefile以支持交叉编译?

    我有以下 Makefile CC g top srcdir SRC DIR cpp src INCLUDES I top srcdir I top srcdir command classes I top srcdir platform I
  • 从 URL 加载 UITableViewCell 的图像(需要异步加载)

    我有一个自定义类 它可以解析 XML 并获取图像的 URL 字符串 我将其存储在数组中 然后我想检索这些字符串来加载图像并将每个字符串显示在 UITableViewCell 中 这是我的代码 UITableViewCell tableVie
  • 禁用 yum 事务检查文件冲突

    如何禁用文件的 yum 事务检查 Transaction check error file usr local xenco backend current from install of xenco rr 1 9 6 104 x86 64
  • Ruby:对象深复制

    我正在研究一些在 Ruby 中深度复制对象的技术 MRI 1 9 3 我遇到了以下示例 但我不确定 dup方法实施 我测试了它并且它确实有效 但是我不理解该方法的逻辑步骤 因此我不舒服在我自己的代码中使用它 是声明 name name du
  • 使用 Python Flask 运行 REST API 版本的最佳方法是什么 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在 Python Flask 中创建 REST API 想知道创建引用特定 git 标签的版本控制 API 的选项有哪些 我想要做的是指定
  • 结构数组初始化中的 MISRA-C 错误

    我有以下内容 typedef struct uint8 t BlockID uint32 t Copies uint16 t Size NVMM ConfigType const NVMM ConfigType NvmmCnf Layout
  • 交互式 Python:尽管正确导入了 line_profiler,但无法使 `%lprun` 工作

    Problem 大多数 iPython 神奇函数 对我来说立刻就可以正常工作 hist time prun等等 但是 我注意到 lprun无法使用 iPython 找到它 因为我最初安装了它 尝试解决 然后我发现我应该安装line prof