Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Configuration 如何定义要从IPython';调用的自定义函数;什么提示?_Configuration_Ipython - Fatal编程技术网

Configuration 如何定义要从IPython';调用的自定义函数;什么提示?

Configuration 如何定义要从IPython';调用的自定义函数;什么提示?,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不起作用。我还没有看到如何将这种用于提示的自定义函数转换为新的配置模型 哪种方

我有一个旧的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\u文件
配置选项中:

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
类。你可以用它来装饰你的功能。
gitprompt.py
已作为要点放置在公共域中: