将导入的模块隐藏到解释器

Jim*_*y C 8 python ipython

我已经构建了一个模块,它使用几个不同的模块来完成各种任务.当我在IPython中导入我的模块并列出可用于自动完成的函数时,这些外部模块包含在该列表中.是否有可能以某种方式隐藏它们?

min*_*nrk 9

在Python中,模块可以定义一个__all__变量,该变量是当某人执行时应该导入的名称列表:

from module import *
Run Code Online (Sandbox Code Playgroud)

IPython可以使用相同的变量来限制完成,但默认情况下它不会这样做.要在运行时启用此功能,请设置:

get_ipython().Completer.limit_to__all__ = True
Run Code Online (Sandbox Code Playgroud)

或者永久设置,添加到您的ipython_config.py:

c.IPCompleter.limit_to__all__ = True
Run Code Online (Sandbox Code Playgroud)