configuration - 如何定义要从 IPython 提示中调用的自定义函数?

标签 configuration ipython

我有一个旧的 ipy_user_conf.py,其中我在用户命名空间中包含了一个简单的函数,如下所示:

import IPython.ipapi
ip = IPython.ipapi.get()

def myfunc():
   ...

ip.user_ns['myfunc'] = myfunc

然后,我可以在提示符中使用 myfunc。

但是,我更新到 IPython 0.12.1,现在 ip_user_conf.py 不起作用。我还没有看到如何将这样的自定义提示函数转换为新的配置模型。

有什么方法可以做到这一点?

最诚挚的问候, 曼努埃尔。

更新:将主题更改为问题

最佳答案

阅读了一些文档(并查看了潜在客户的源代码)后,我找到了这个问题的解决方案。

现在您应该将所有自定义函数移动到 .ipython 内的模块中目录。由于我所做的是一个返回当前目录的 git 分支和状态的简单函数,因此我创建了一个名为 gitprompt.py 的文件。然后我将文件名包含在 exec_file 中配置选项:

c.InteractiveShellApp.exec_files = [b'gitprompt.py']

此类文件中的所有定义都放置在用户命名空间中。所以现在我可以在提示符中使用它:

# Input prompt.  '\#' will be transformed to the prompt number
c.PromptManager.in_template = br'{color.Green}\# {color.LightBlue}~\u{color.Green}:\w{color.LightBlue} {git_branch_and_st} \$\n>>> '

# Continuation prompt.
c.PromptManager.in2_template = br'... '

请注意,为了使该函数发挥这样的作用(即每次打印提示时调用),您需要使用 IPython.core.prompts.LazyEvaluation类(class)。您可以将它用作您的函数的装饰器。 gitprompt.py已作为要点置于公共(public)领域:https://gist.github.com/2719419

关于configuration - 如何定义要从 IPython 提示中调用的自定义函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10586471/

相关文章:

Apache 和 Tomcat 代理

plugins - 邪恶的 Emacs : is there a way to disable vim-like keys in «insert» mode?

image-processing - Tensor.eval() 没有输出。 IPython 笔记本中只有一个闪烁的光标

ipython - 使用单独的图像将ipython笔记本转换为html

python - 导入如何在 IPython 中工作

c# - .Net 应用程序使用的文件放在哪里

vim - 我可以在 VIM 中使用 SPACE 作为 map 领导者吗?

apache-spark - 将 PySpark 与 Jupyter Notebook 集成

python - jupyter-console 无法启动,但 jupyter-notebook 很好

linux - 用户 Centos 8 Postgresql12 的身份验证失败