Autoreload of modules in IPython

本文介绍如何在ipython环境中实现已导入模块的自动加载与重新加载,包括使用%load_extautoreload和%autoreload2指令,以及在ipython启动时自动加载的方法。
部署运行你感兴趣的模型镜像

ipython很好用,但是如果在ipython里已经import过的模块修改后需要重新reload就需要这样

In [1]: %load_ext autoreload

In [2]: %autoreload 2

In [3]: from foo import some_function

In [4]: some_function()
Out[4]: 42

In [5]: # open foo.py in an editor and change some_function to return 43

In [6]: some_function()
Out[6]: 43

如果想在ipython每次启时自动加载,步骤如下
it may be necessary to generate one first:
1、运行下面的command用来产生ipython_config.py文件

ipython profile create

2、gedit ~/.ipython/profile_default/ipython_config.py添加:

c.InteractiveShellApp.exec_lines = []
c.InteractiveShellApp.exec_lines.append('%load_ext autoreload')
c.InteractiveShellApp.exec_lines.append('%autoreload 2')


您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

%load_ext autoreload %autoreload 2 %matplotlib inline A module that was compiled using NumPy 1.x cannot be run in NumPy 2.0.2 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "E:\anaconda\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "E:\anaconda\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "E:\anaconda\lib\site-packages\ipykernel_launcher.py", line 17, in <module> app.launch_new_instance() File "E:\anaconda\lib\site-packages\traitlets\config\application.py", line 846, in launch_instance app.start() File "E:\anaconda\lib\site-packages\ipykernel\kernelapp.py", line 712, in start self.io_loop.start() File "E:\anaconda\lib\site-packages\tornado\platform\asyncio.py", line 199, in start self.asyncio_loop.run_forever() File "E:\anaconda\lib\asyncio\base_events.py", line 601, in run_forever self._run_once() File "E:\anaconda\lib\asyncio\base_events.py", line 1905, in _run_once handle._run() File "E:\anaconda\lib\asyncio\events.py", line 80, in _run self._context.run(self._callback, *self._args) File "E:\anaconda\lib\site-packages\ipykernel\kernelbase.py", line 510, in dispatch_queue await self.process_one() File "E:\anaconda\lib\site-packages\ipykernel\kernelbase.py", line 499, in process_one await dispatch(*args) File "E:\anaconda\lib\site-packages\ipykernel\kernelbase.py", line 406, in dispatch_shell await result File "E:\anaconda\lib\site-packages\ipykernel\kernelbase.py", line 730, in execute_request reply_content = await reply_content File "E:\anaconda\lib\site-packages\ipykernel\ipkernel.py", line 390, in do_execute res = shell.run_cell(code, store_history=store_history, silent=silent) File "E:\anaconda\lib\site-packages\ipykernel\zmqshell.py", line 528, in run_cell return super().run_cell(*args, **kwargs) File "E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 2914, in run_cell result = self._run_cell( File "E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 2960, in _run_cell return runner(coro) File "E:\anaconda\lib\site-packages\IPython\core\async_helpers.py", line 78, in _pseudo_sync_runner coro.send(None) File "E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3185, in run_cell_async has_raised = await self.run_ast_nodes(code_ast.body, cell_name, File "E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3377, in run_ast_nodes if (await self.run_code(code, result, async_=asy)): File "E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3457, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "C:\Users\John\AppData\Local\Temp\ipykernel_7032\4138125057.py", line 3, in <module> get_ipython().run_line_magic('matplotlib', 'inline') File "E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 2364, in run_line_magic result = fn(*args, **kwargs) File "E:\anaconda\lib\site-packages\decorator.py", line 232, in fun return caller(func, *(extras + args), **kw) File "E:\anaconda\lib\site-packages\IPython\core\magic.py", line 187, in <lambda> call = lambda f, *a, **k: f(*a, **k) File "E:\anaconda\lib\site-packages\IPython\core\magics\pylab.py", line 99, in matplotlib gui, backend = self.shell.enable_matplotlib(args.gui.lower() if isinstance(args.gui, str) else args.gui) File "E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3533, in enable_matplotlib from matplotlib_inline.backend_inline import configure_inline_support File "E:\anaconda\lib\site-packages\matplotlib_inline\__init__.py", line 1, in <module> from . import backend_inline, config # noqa File "E:\anaconda\lib\site-packages\matplotlib_inline\backend_inline.py", line 6, in <module> import matplotlib File "E:\anaconda\lib\site-packages\matplotlib\__init__.py", line 109, in <module> from . import _api, _version, cbook, docstring, rcsetup File "E:\anaconda\lib\site-packages\matplotlib\rcsetup.py", line 27, in <module> from matplotlib.colors import Colormap, is_color_like File "E:\anaconda\lib\site-packages\matplotlib\colors.py", line 56, in <module> from matplotlib import _api, cbook, scale File "E:\anaconda\lib\site-packages\matplotlib\scale.py", line 23, in <module> from matplotlib.ticker import ( File "E:\anaconda\lib\site-packages\matplotlib\ticker.py", line 136, in <module> from matplotlib import transforms as mtransforms File "E:\anaconda\lib\site-packages\matplotlib\transforms.py", line 46, in <module> from matplotlib._path import ( --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) AttributeError: _ARRAY_API not found --------------------------------------------------------------------------- ImportError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_7032\4138125057.py in <module> 1 get_ipython().run_line_magic('load_ext', 'autoreload') 2 get_ipython().run_line_magic('autoreload', '2') ----> 3 get_ipython().run_line_magic('matplotlib', 'inline') E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py in run_line_magic(self, magic_name, line, _stack_depth) 2362 kwargs['local_ns'] = self.get_local_scope(stack_depth) 2363 with self.builtin_trap: -> 2364 result = fn(*args, **kwargs) 2365 return result 2366 E:\anaconda\lib\site-packages\decorator.py in fun(*args, **kw) 230 if not kwsyntax: 231 args, kw = fix(args, kw, sig) --> 232 return caller(func, *(extras + args), **kw) 233 fun.__name__ = func.__name__ 234 fun.__doc__ = func.__doc__ E:\anaconda\lib\site-packages\IPython\core\magic.py in <lambda>(f, *a, **k) 185 # but it's overkill for just that one bit of state. 186 def magic_deco(arg): --> 187 call = lambda f, *a, **k: f(*a, **k) 188 189 if callable(arg): E:\anaconda\lib\site-packages\IPython\core\magics\pylab.py in matplotlib(self, line) 97 print("Available matplotlib backends: %s" % backends_list) 98 else: ---> 99 gui, backend = self.shell.enable_matplotlib(args.gui.lower() if isinstance(args.gui, str) else args.gui) 100 self._show_matplotlib_backend(args.gui, backend) 101 E:\anaconda\lib\site-packages\IPython\core\interactiveshell.py in enable_matplotlib(self, gui) 3531 """ 3532 from IPython.core import pylabtools as pt -> 3533 from matplotlib_inline.backend_inline import configure_inline_support 3534 gui, backend = pt.find_gui_and_backend(gui, self.pylab_gui_select) 3535 E:\anaconda\lib\site-packages\matplotlib_inline\__init__.py in <module> ----> 1 from . import backend_inline, config # noqa 2 __version__ = "0.1.6" # noqa E:\anaconda\lib\site-packages\matplotlib_inline\backend_inline.py in <module> 4 # Distributed under the terms of the BSD 3-Clause License. 5 ----> 6 import matplotlib 7 from matplotlib import colors 8 from matplotlib.backends import backend_agg E:\anaconda\lib\site-packages\matplotlib\__init__.py in <module> 107 # cbook must import matplotlib only within function 108 # definitions, so it is safe to import from it here. --> 109 from . import _api, _version, cbook, docstring, rcsetup 110 from matplotlib.cbook import MatplotlibDeprecationWarning, sanitize_sequence 111 from matplotlib.cbook import mplDeprecation # deprecated E:\anaconda\lib\site-packages\matplotlib\rcsetup.py in <module> 25 from matplotlib import _api, cbook 26 from matplotlib.cbook import ls_mapper ---> 27 from matplotlib.colors import Colormap, is_color_like 28 from matplotlib.fontconfig_pattern import parse_fontconfig_pattern 29 from matplotlib._enums import JoinStyle, CapStyle E:\anaconda\lib\site-packages\matplotlib\colors.py in <module> 54 import matplotlib as mpl 55 import numpy as np ---> 56 from matplotlib import _api, cbook, scale 57 from ._color_data import BASE_COLORS, TABLEAU_COLORS, CSS4_COLORS, XKCD_COLORS 58 E:\anaconda\lib\site-packages\matplotlib\scale.py in <module> 21 import matplotlib as mpl 22 from matplotlib import _api, docstring ---> 23 from matplotlib.ticker import ( 24 NullFormatter, ScalarFormatter, LogFormatterSciNotation, LogitFormatter, 25 NullLocator, LogLocator, AutoLocator, AutoMinorLocator, E:\anaconda\lib\site-packages\matplotlib\ticker.py in <module> 134 import matplotlib as mpl 135 from matplotlib import _api, cbook --> 136 from matplotlib import transforms as mtransforms 137 138 _log = logging.getLogger(__name__) E:\anaconda\lib\site-packages\matplotlib\transforms.py in <module> 44 45 from matplotlib import _api ---> 46 from matplotlib._path import ( 47 affine_transform, count_bboxes_overlapping_bbox, update_path_extents) 48 from .path import Path ImportError: numpy.core.multiarray failed to import
08-14
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值