Jupyter metapackage that installs all core Jupyter components in one command for user convenience
npx @tessl/cli install tessl/pypi-jupyter@1.1.0The Jupyter metapackage provides a single installation point for the complete Jupyter ecosystem. Rather than containing functional code, it serves as a convenience package that installs and coordinates multiple core Jupyter components, simplifying setup for end users who want a complete interactive computing environment.
pip install jupyterThe Jupyter metapackage itself contains no Python modules and provides no importable code:
# ❌ This will fail - jupyter metapackage has no modules
import jupyter # ModuleNotFoundErrorInstead, import from the individual components it installs:
# ✅ Import from installed components
from notebook import notebookapp
from jupyter_console import app
from nbconvert import HTMLExporter
from IPython.display import display
from ipywidgets import interactThe metapackage is used for installation only. After installation, use the individual Jupyter components:
# Install all Jupyter components at once
pip install jupyter
# Launch Jupyter Notebook
jupyter notebook
# Launch JupyterLab
jupyter lab
# Launch Jupyter Console
jupyter console
# Convert notebooks
jupyter nbconvert notebook.ipynb --to htmlThe Jupyter metapackage uses a dependency-only approach where:
py_modules = [])install_requires dependencies on core componentsThe metapackage installs these core Jupyter components when you run pip install jupyter:
# Dependency declarations in setup.py (not importable functions)
install_requires = [
'notebook', # Jupyter Notebook application
'jupyter-console', # Terminal-based Jupyter client
'nbconvert', # Convert notebooks between formats
'ipykernel', # IPython kernel for Jupyter
'ipywidgets', # Interactive widgets for notebooks
'jupyterlab', # Modern web-based Jupyter interface
]After installation via the metapackage, access individual components through CLI commands:
# Jupyter Notebook
jupyter notebook
# Launch Jupyter Notebook server interface
# JupyterLab
jupyter lab
# Launch modern JupyterLab web interface
# Jupyter Console
jupyter console
# Launch terminal-based interactive Jupyter session
# Notebook Conversion
jupyter nbconvert <source_file> --to <target_format>
# Convert notebooks between different formats (html, pdf, etc.)The metapackage follows specific usage patterns:
# ✅ Recommended: End-user installation
pip install jupyter
# Provides complete Jupyter environment in single command
# Installs all core components: notebook, jupyterlab, console, etc.
# ❌ Not recommended: Package dependency
# setup.py: install_requires=['jupyter'] # DON'T DO THIS
# Other packages should NOT depend on jupyter metapackage
# Instead depend on specific components like 'notebook' or 'jupyterlab'
# ✅ Recommended: Component-specific dependencies
# setup.py examples for libraries:
# install_requires=['notebook>=6.0'] # for notebook server integration
# install_requires=['ipykernel>=5.0'] # for kernel development
# install_requires=['nbconvert>=6.0'] # for notebook processing
# install_requires=['ipywidgets>=7.0'] # for interactive widgetsWhen installing the Jupyter metapackage:
install_requiresjupyter notebook, jupyter lab, etc.)jupyter module is created - only dependencies are installedCommon issues when using the metapackage incorrectly:
# ImportError: No module named 'jupyter'
import jupyter # ❌ This will fail!
# ModuleNotFoundError: No module named 'jupyter'
# ✅ Correct approach - import from installed components:
from notebook import notebookapp
from jupyter_console import app
from IPython.display import display
from ipywidgets import interact# Dependency conflicts in setup.py
install_requires = ['jupyter'] # ❌ Can cause version conflicts
# ✅ Better approach - use specific components:
install_requires = [
'notebook>=6.0', # instead of 'jupyter'
'ipykernel>=5.0' # for kernel functionality
]For packages currently depending on the jupyter metapackage:
# setup.py migration example:
# Before (problematic):
install_requires = ['jupyter']
# After (recommended):
install_requires = [
'notebook>=6.0', # for notebook server functionality
'ipykernel>=5.0' # for kernel development
]
# This provides better dependency resolution and clearer requirements