gpt4 book ai didi

ipython - %load_ext 如何在 ipython 中工作

转载 作者:行者123 更新时间:2023-12-04 20:37:27 24 4
gpt4 key购买 nike

我安装包:https://github.com/jaysw/ipydb

根据教程,我应该使用它来启用它,

$ ipython
In [1] : %load_ext ipydb

它看起来像一个 IPython 扩展。

但我感到困惑,这个包没有安装在我的“~/.ipython/extensions ”下
aaron@aarons-MacBook-Pro:~/Desktop/github/ipydb$ls ~/.ipython/extensions/
aaron@aarons-MacBook-Pro:~/Desktop/github/ipydb$ls ~/.ipython/nbextensions/
livereveal usability

所以,我想知道
  • %load_ext 魔法是如何工作的,或者当我输入“%load_ext ipydb”时发生了什么
  • 如果我只输入“ipython ”,ipython 如何进行配置,它将使用默认配置文件,但我的“~/.ipython/profile_default/”下没有配置文件

  • 下面是默认配置文件和一个用户定义的配置文件:
    aaron@aarons-MacBook-Pro:~/Desktop/github/ipydb$ls ~/.ipython/profile_default/
    db history.sqlite log nbconfig pid security startup static
    aaron@aarons-MacBook-Pro:~/Desktop/github/ipydb$ipython profile create my_profile
    [ProfileCreate] Generating default config file: u'/Users/aaron/.ipython/profile_my_profile/ipython_config.py'
    [ProfileCreate] Generating default config file: u'/Users/aaron/.ipython/profile_my_profile/ipython_kernel_config.py'
    [ProfileCreate] Generating default config file: u'/Users/aaron/.ipython/profile_my_profile/ipython_console_config.py'
    [ProfileCreate] Generating default config file: u'/Users/aaron/.ipython/profile_my_profile/ipython_qtconsole_config.py'
    [ProfileCreate] Generating default config file: u'/Users/aaron/.ipython/profile_my_profile/ipython_notebook_config.py'
    [ProfileCreate] Generating default config file: u'/Users/aaron/.ipython/profile_my_profile/ipython_nbconvert_config.py'
    aaron@aarons-MacBook-Pro:~/Desktop/github/ipydb$ls ~/.ipython/profile_my_profile/
    ipython_config.py ipython_nbconvert_config.py log startup
    ipython_console_config.py ipython_notebook_config.py pid static
    ipython_kernel_config.py ipython_qtconsole_config.py security
    aaron@aarons-MacBook-Pro:~/Desktop/github/ipydb$

    谢谢,

    最佳答案

    好的,最后,我刚刚找到了在 ipython 中加载扩展的逻辑:

    源代码在:https://github.com/ipython/ipython/blob/master/IPython/core/extensions.py

    核心逻辑是:

    def load_extension(self, module_str):
    """Load an IPython extension by its module name.
    Returns the string "already loaded" if the extension is already loaded,
    "no load function" if the module doesn't have a load_ipython_extension
    function, or None if it succeeded.
    """
    if module_str in self.loaded:
    return "already loaded"

    from IPython.utils.syspathcontext import prepended_to_syspath

    with self.shell.builtin_trap:
    if module_str not in sys.modules:
    with prepended_to_syspath(self.ipython_extension_dir):
    __import__(module_str)
    mod = sys.modules[module_str]
    if self._call_load_ipython_extension(mod):
    self.loaded.add(module_str)
    else:
    return "no load function"

    现在说得通了,感谢 IPython 团队构建了如此出色的工具,我真的很喜欢它。

    关于ipython - %load_ext 如何在 ipython 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32732455/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com