ipython和pylab模式_ipython --pylab vs ipython

What does ipython --pylab exactly do?

Is ipython --pylab exactly equivalent to:

> ipython

> from pylab import *

If not, what are the differences?

Say I launch IPython without the --pylab arguments, how can I bring it to the same state as if I had started it with --pylab?

解决方案

--pylab[=option] is almost technically equivalent to %pylab option as the difference that you cannot un-pylab a --pylab kernel, but you can restart a %pylab kernel.

%pylab is a little more that just from pylab import * (see %pylab?for a longer explanation), but in short yes it imports a lot of things, but it also hooks event loops (qt, wx, osx...) and set-up some display hooks for matplotlib (the things that magically allow you to get inline graph). Setting the display-hook is closer to something like sympy.init_printing() if you wonder.

Note that starting at IPython 1.0 we recommend not to use --pylab or %pylab (unless you know exactly the implication). We provide %matplotlib that only init the display hook. %pylab will warn you if it replaced a few object in current namespace, and which ones. This is useful especially for functions like sum which do not have the same behavior the behavior with and without pylab and leads to subtle bugs.

We consider now that --pylab was a mistake, but that it was still really usefull at the beginning of IPython. We all know that Explicit is better than implicit so if you can advise people not to use %pylab we would appreciate it, to one day get rid of it.

Extract from %pylab help that give only the import part of pylab:

%pylab makes the following imports::

import numpy

import matplotlib

from matplotlib import pylab, mlab, pyplot

np = numpy

plt = pyplot

from IPython.display import display

from IPython.core.pylabtools import figsize, getfigs

from pylab import *

from numpy import *

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ModuleNotFoundError Traceback (most recent call last) Cell In[19], line 1 ----> 1 get_ipython().run_line_magic('matplotlib', 'inline') 2 import matplotlib.pyplot as plt 3 # Mac 设置显示中文 File D:\anaconda3\envs\test02\lib\site-packages\IPython\core\interactiveshell.py:2414, in InteractiveShell.run_line_magic(self, magic_name, line, _stack_depth) 2412 kwargs['local_ns'] = self.get_local_scope(stack_depth) 2413 with self.builtin_trap: -> 2414 result = fn(*args, **kwargs) 2416 # The code below prevents the output from being displayed 2417 # when using magics with decodator @output_can_be_silenced 2418 # when the last Python token in the expression is a ';'. 2419 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False): File D:\anaconda3\envs\test02\lib\site-packages\IPython\core\magics\pylab.py:99, in PylabMagics.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) File D:\anaconda3\envs\test02\lib\site-packages\IPython\core\interactiveshell.py:3585, in InteractiveShell.enable_matplotlib(self, gui) 3564 def enable_matplotlib(self, gui=None): 3565 """Enable interactive matplotlib and inline figure support. 3566 3567 This takes the following steps: (...) 3583 display figures inline. 3584 """ -> 3585 from matplotlib_inline.backend_inline import configure_inline_support 3587 from IPython.core import pylabtools as pt 3588 gui, backend = pt.find_gui_and_backend(gui, self.pylab_gui_select) File D:\anaconda3\envs\test02\lib\site-packages\matplotlib_inline\__init__.py:1 ----> 1 from . import backend_inline, config # noqa 2 __version__ = "0.1.6" File D:\anaconda3\envs\test02\lib\site-packages\matplotlib_inline\backend_inline.py:6 1 """A matplotlib backend for publishing figures via display_data""" 3 # Copyright (c) IPython Development Team. 4 # Distributed under the terms of the BSD 3-Clause License. ----> 6 import matplotlib 7 from matplotlib import colors 8 from matplotlib.backends import backend_agg ModuleNotFoundError: No module named 'matplotlib' 这个怎么修改
最新发布
07-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值