问题
The '[notebook]' appears to be some kind of modifier, but as I was installing Jupyter rather than ipython I suddenly wondered what other variants of this modifier I've been missing out on, perhaps something that would install specific kernels or configurations for me.
Unfortunately, I don't know what the '[notebook]' is: pip search '[notebook]' finds nothing, and I don't know what this modifier is or is called. I've looked at the PyPI naming convention pep, etc, but I couldn't find anything referencing '[...]' notation.
I don't see any kind of identifier post-install that helps me determine I've installed this special modifier?
osmith:~ oliver.smith$ pip3 install ipython[notebook]
Requirement already satisfied: ipython[notebook] in /usr/local/lib/python3.6/site-packages
Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: pexpect; sys_platform != "win32" in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: decorator in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: jedi>=0.10 in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: appnope; sys_platform == "darwin" in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: pygments in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: ipywidgets; extra == "notebook" in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: notebook; extra == "notebook" in /usr/local/lib/python3.6/site-packages (from ipython[notebook])
Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/site-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython[notebook])
Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/site-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython[notebook])
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.6/site-packages (from pexpect; sys_platform != "win32"->ipython[notebook])
Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/site-packages (from traitlets>=4.2->ipython[notebook])
Requirement already satisfied: widgetsnbextension~=2.0.0 in /usr/local/lib/python3.6/site-packages (from ipywidgets; extra == "notebook"->ipython[notebook])
Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.6/site-packages (from ipywidgets; extra == "notebook"->ipython[notebook])
Requirement already satisfied: nbformat>=4.2.0 in /usr/local/lib/python3.6/site-packages (from ipywidgets; extra == "notebook"->ipython[notebook])
Requirement already satisfied: terminado>=0.3.3; sys_platform != "win32" in /usr/local/lib/python3.6/site-packages (from notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: jupyter-client in /usr/local/lib/python3.6/site-packages (from notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: tornado>=4 in /usr/local/lib/python3.6/site-packages (from notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: jinja2 in /usr/local/lib/python3.6/site-packages (from notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.6/site-packages (from notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: nbconvert in /usr/local/lib/python3.6/site-packages (from notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets; extra == "notebook"->ipython[notebook])
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/site-packages (from jupyter-client->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: pyzmq>=13 in /usr/local/lib/python3.6/site-packages (from jupyter-client->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/site-packages (from jinja2->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: mistune!=0.6 in /usr/local/lib/python3.6/site-packages (from nbconvert->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.6/site-packages (from nbconvert->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: bleach in /usr/local/lib/python3.6/site-packages (from nbconvert->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.6/site-packages (from nbconvert->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: testpath in /usr/local/lib/python3.6/site-packages (from nbconvert->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: html5lib>=0.99999999 in /usr/local/lib/python3.6/site-packages (from bleach->nbconvert->notebook; extra == "notebook"->ipython[notebook])
Requirement already satisfied: webencodings in /usr/local/lib/python3.6/site-packages (from html5lib>=0.99999999->bleach->nbconvert->notebook; extra == "notebook"->ipython[notebook])
osmith:~ oliver.smith$ pip3 show ipython
Name: ipython
Version: 6.1.0
Summary: IPython: Productive Interactive Computing
Home-page: https://ipython.org
Author: The IPython Development Team
Author-email: ipython-dev@python.org
License: BSD
Location: /usr/local/lib/python3.6/site-packages
Requires: jedi, prompt-toolkit, pygments, traitlets, pexpect, simplegeneric, pickleshare, setuptools, appnope, decorator
osmith:~ oliver.smith$ pip3 show ipython[notebook]
osmith:~ oliver.smith$
回答1:
The square brackets indicate extras that are not normally installed.
This link explains that in detail: https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-dependencies
This link explains more about requirement specifiers and lists the square brackets as an option: https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers
来源:https://stackoverflow.com/questions/44507781/what-does-the-notebook-in-pip-install-ipythonnotebook-mean