Die Einstellung wurde in Jupyter 5.X
und höher durch Hinzufügen des folgenden Codes deaktiviert
pylab = Unicode('disabled', config=True,
help=_("""
DISABLED: use %pylab or %matplotlib in the notebook to enable matplotlib.
""")
)
@observe('pylab')
def _update_pylab(self, change):
"""when --pylab is specified, display a warning and exit"""
if change['new'] != 'warn':
backend = ' %s' % change['new']
else:
backend = ''
self.log.error(_("Support for specifying --pylab on the command line has been removed."))
self.log.error(
_("Please use `%pylab{0}` or `%matplotlib{0}` in the notebook itself.").format(backend)
)
self.exit(1)
Und in früheren Versionen war es hauptsächlich eine Warnung. Dies ist jedoch kein großes Problem, da Jupyter Konzepte von verwendet kernels
und Sie den Kernel für Ihr Projekt finden können, indem Sie den folgenden Befehl ausführen
$ jupyter kernelspec list
Available kernels:
python3 /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3
Dies gibt mir den Pfad zum Kernel-Ordner. Wenn ich jetzt die /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3/kernel.json
Datei öffne , sehe ich so etwas wie unten
{
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}",
],
"display_name": "Python 3",
"language": "python"
}
So können Sie sehen, welcher Befehl ausgeführt wird, um den Kernel zu starten. Wenn Sie also den folgenden Befehl ausführen
$ python -m ipykernel_launcher --help
IPython: an enhanced interactive Python shell.
Subcommands
-----------
Subcommands are launched as `ipython-kernel cmd [args]`. For information on
using subcommand 'cmd', do: `ipython-kernel cmd -h`.
install
Install the IPython kernel
Options
-------
Arguments that take values are actually convenience aliases to full
Configurables, whose aliases are listed on the help line. For more information
on full configurables, see '--help-all'.
....
--pylab=<CaselessStrEnum> (InteractiveShellApp.pylab)
Default: None
Choices: ['auto', 'agg', 'gtk', 'gtk3', 'inline', 'ipympl', 'nbagg', 'notebook', 'osx', 'pdf', 'ps', 'qt', 'qt4', 'qt5', 'svg', 'tk', 'widget', 'wx']
Pre-load matplotlib and numpy for interactive use, selecting a particular
matplotlib backend and loop integration.
--matplotlib=<CaselessStrEnum> (InteractiveShellApp.matplotlib)
Default: None
Choices: ['auto', 'agg', 'gtk', 'gtk3', 'inline', 'ipympl', 'nbagg', 'notebook', 'osx', 'pdf', 'ps', 'qt', 'qt4', 'qt5', 'svg', 'tk', 'widget', 'wx']
Configure matplotlib for interactive use with the default matplotlib
backend.
...
To see all available configurables, use `--help-all`
Also jetzt, wenn wir unsere kernel.json
Datei auf aktualisieren
{
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}",
"--pylab",
"inline"
],
"display_name": "Python 3",
"language": "python"
}
Und wenn ich laufe, sind jupyter notebook
die Grafiken automatischinline
Beachten Sie, dass der folgende Ansatz auch weiterhin funktioniert, wenn Sie eine Datei im folgenden Pfad erstellen
~ / .ipython / profile_default / ipython_kernel_config.py
c = get_config()
c.IPKernelApp.matplotlib = 'inline'
Der Nachteil dieses Ansatzes ist jedoch, dass dies eine globale Auswirkung auf jede Umgebung ist, die Python verwendet. Sie können dies auch dann als Vorteil betrachten, wenn Sie mit einer einzigen Änderung ein gemeinsames Verhalten in verschiedenen Umgebungen erzielen möchten.
Wählen Sie also den Ansatz, den Sie basierend auf Ihren Anforderungen verwenden möchten