嵌入式IPython中的自动完成

最后发布: 2016-12-12 18:56:42


问题

我正在使用IPython.terminal.embed InteractiveShellEmbed将IPython嵌入我的应用程序中。 所有工作都是严格的,但是自动完成功能不适用于模块。 例如: import rand[TAB]不能完全import random 我该怎么做才能解决此问题?

我的代码:

# -*- coding: utf-8 -*-
#!/usr/bin/env python

def main():

    from IPython.terminal.embed import InteractiveShellEmbed

    ipshell = InteractiveShellEmbed(banner1 = 'Loading\n',
                                    exit_msg = 'Leaving')


    ipshell('Hit Ctrl-D to exit interpreter.\n')

if __name__ == "__main__":
    main()
python autocomplete ipython interactive-shell
回答

对于使用python 2.7.6的iPython 5.1.0,自动完成功能似乎对我有用。 您正在使用哪个版本的iPython? 如果只是使用“从IPython导入嵌入”然后在需要的应用程序中调用“ embed()”,是否会遇到相同的问题?

---更新:

尝试创建一个显式实例:

ipshell = InteractiveShellEmbed.instance()