问题标签 [ipython-magic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 用于用户魔术功能的 IPython 自定义选项卡完成
在 IPython 中,为用户定义的对象提供制表符补全是相当容易的:只需定义一个__dir__
向对象返回字符串列表的方法。
IPython 还为我们提供了一种使用方便实用程序定义我们自己的自定义魔术函数的方法register_line_magic
。在一些~/.ipython/profile_default/startup/magictest.py
:
现在我的问题是:如何为这个神奇的功能提供自动完成功能?
根据这封电子邮件,应该查看IPython.core.interactiveshell.InteractiveShell.init_completer()
一个魔术功能完成器的示例,例如%reset
“%cd”等...
但是,在与定义我的魔术函数的启动文件相同的启动文件中,以下代码不起作用:
在 IPython shell 中,键入%show TAB
不会触发任何内容(函数中的打印语句显示该函数甚至没有被调用)。
有人可以指出一些有关如何从 Ipython 启动文件中定义此类用户魔术命令参数完成的文档或示例吗?
谢谢!
python - iPython 魔术命令 Unicode 错误和“str”问题
我正在尝试在我的 IPython 4.0.3 和 Python 2.7.11 中使用 iPython 魔法。但是,使用魔术命令,例如:
导致以下错误。
有谁知道可能出了什么问题以及我该如何解决?
module - 将函数捆绑到单个 IPython 笔记本中的模块中
如果您正在编写一个传统的 Python 程序,那么将多个函数放在一个函数包中以按原样访问它们的最自然方法bundle_name.function_name()
是找到它们,并在每次需要它们时将其作为模块导入。
当您开始使用 IPython notebook 时,事情变得越来越复杂,因为您基本上是在一个 IPython 会话中工作,并且对于将复杂应用程序的逻辑拆分为多个模块的问题没有一个明确的解决方案(至少在功能级别上,至少)。这些是我想到的几个:
- 定义类并
@staticmethod
为每个函数使用或使用类装饰器:
.
- 每次写入文件并重新导入
单元格1:
单元格2:
单元格3:
- 好的部分是您可以重新使用其他笔记本中的那些实用程序功能+您没有“重新发明”其他人可能难以理解的自定义装饰器。
主要缺点是您使用需要按特定顺序调用的多个单元格才能正常工作,并且每次重新启动会话时,都需要重新执行那些“重新加载定义”等等。而且您还可以'不要在这些单元格的底部写'test()'函数来执行它们,并且每次更改并重新运行它时,它们的输出将被重定向到单元格下方的单元格输出中(这样你'在你按 Ctr+Enter 在这个模块单元内,我会看看是否有什么东西坏了,比如def func1(): ..; def test_func1():..; test_func1()
- 并在一个批次中运行它)。
我想知道这个问题是否有任何可靠的开箱即用解决方案?
python - 如何将 iPython 分析器 %%prun -r 的结果分配给变量?
在iPython 魔术函数的文档中,它说:
用法,在单元格模式下:%%prun [options] [statement] code... code...
在单元格模式下,附加的代码行被附加到第一行的(可能是空的)语句中。单元模式允许您轻松分析多行块,而无需将它们放在单独的函数中。
选项:-r 返回分析生成的 pstats.Stats 对象。该对象包含有关配置文件的所有信息,您可以稍后将其用于进一步分析或其他功能。
但它没有给出如何使用该-r
选项的任何示例。如何将 pstats.Stats 对象关联到变量?使用细胞分析器?
编辑:
这不是重复的,因为我专门询问了单元格模式,其他问题是关于线魔术功能的。Thomas K 回答我的问题时说这是不可能的。这应该被允许作为对我的问题的回答,而不是对其他问题的回答。
ipython - 如何为 IPython(笔记本)shell 命令提供内联输入?
我想将一个 IPython 笔记本与一些 shell 命令及其输入放在一起。在 bash 提示符下,我可以使用“here-document”语法:
如何在 IPython 中,特别是在 jupyter 笔记本中获得相同的效果?我知道如何将 shell 命令作为 IPython 执行为“line magics”或“cell magics”,例如:
我将IPython 视为一个系统外壳,它展示了如何启用一些语法细节。在以下之后,我可以运行系统命令而无需预先!
或!!
但是这些都无助于为这些命令提供内联输入:here-document 语法在 IPython 中无效,并导致 python SyntaxError
. 那么我该怎么做呢?
python - 将 argparse 文档作为字符串获取
我正在使用 argparse 来创建 ipython 魔术。该库在调用时很好地打印了一些文档parser.print_doc()
。但是,有没有办法将文档作为字符串获取,以便我可以将它附加到__doc__
我的 ipython 单元格?
这是我想做的一个例子:
python - 如何在 IPython 的魔术命令中添加自定义标志?(.ipy 文件)
是否可以在 IPython 的魔术命令中添加自定义标志?更具体地说,我想使用带有自制标志的 %run 命令:
并且能够在脚本中使用“选项”。
对于 .py 文件,此处提供了答案:Python 中的命令行参数
python - IPython 运行魔法:如何为“run -i”创建别名?
我正在编写一个 python 用户界面来控制实验室中的各种仪器。如果脚本没有以交互方式运行,则与仪器的连接会在脚本结束时丢失,这可能非常糟糕。我想帮助用户“记住”交互式运行脚本。
我正在考虑两种可能的方法来做到这一点。首先,如标题中所述,我可以为run -i
:
但这会返回一个错误:
有没有办法解决这个问题?
或者,如果-i
标志被传递,我可以在脚本内部检测,如果没有传递,则引发错误。但是,它没有出现在sys.argv
列表中:
我不能使用 ipy 文件,因为我需要阅读 %run 标志,正如我之前的问题中所述: 如何向 IPython 的魔法命令添加自定义标志?(.ipy 文件)
有人看到这个问题的解决方案吗?
r - 更新到 Canopy Ver 1.7.4.3348 后,%R 魔法不再适用于 IPython 或 Jupyter
以前 %R 和 %%R 魔法在 IPython 和 Jupyter python notebooks 中工作。R终端版本是:
在 Enthought Canopy 中升级到版本 1.7.4.3348 后,笔记本和 IPython 不再工作。我已经尝试在安装 RKernel和http://irkernel.github.io/installation/之后重新安装,这在以前有效。我运行命令来加载 R-extension
我收到如下错误消息:
是否与 numpy 的 Canopy 版本被列为 1.10.4-1 和 np. 版本结果为 1.11.1(基于错误消息)?任何建议都非常感激。PS。R 仍然在控制台中工作,在终端和带有 R 内核的 Jupyter 中......