Jupyterlab

__HTML_TAG_138_📄 Genera JupyterLab PDF Guida_HTML_TAG_139__ __HTML_TAG_140_ # JupyterLab Cheatsheet ## Installazione _Tabella_146__ # Comandi di base _Tabella_147__ # Kernel Management _Tabella_148__ ## Conversione di Notebook (nbconvert) _Tabella_149__ ## Gestione dell'estensione TABELLA ## Configurazione server avanzata _Tabella_151__ ## Workspace Management _Tabella_152__ ## Configurazione ## Configurazione principale File **Location**: `~/.jupyter/jupyter_lab_config.py` (Linux/macOS) o `%USERPROFILE%\.jupyter\jupyter_lab_config.py` (Windows) Generare la configurazione predefinita: Traduzione: ### Opzioni di configurazione comuni
# ~/.jupyter/jupyter_lab_config.py

c = get_config()

# Server settings
c.ServerApp.ip = '0.0.0.0'                    # Listen on all interfaces
c.ServerApp.port = 8888                       # Default port
c.ServerApp.open_browser = False              # Don't open browser automatically
c.ServerApp.token = 'your-secret-token'       # Authentication token
c.ServerApp.allow_remote_access = True        # Enable remote access
c.ServerApp.allow_origin = '*'                # Allow CORS from any origin
c.ServerApp.allow_root = False                # Prevent running as root

# Directory settings
c.ServerApp.root_dir = '/path/to/notebooks'   # Default working directory
c.ServerApp.preferred_dir = '/path/to/start'  # Preferred starting directory

# Resource limits
c.ServerApp.iopub_data_rate_limit = 10000000  # Data rate limit (bytes/sec)
c.ServerApp.iopub_msg_rate_limit = 1000       # Message rate limit
c.ServerApp.rate_limit_window = 3.0           # Rate limit window (seconds)

# Kernel management
c.MappingKernelManager.default_kernel_name = 'python3'
c.MappingKernelManager.cull_idle_timeout = 3600     # Kill idle kernels after 1 hour
c.MappingKernelManager.cull_interval = 300          # Check for idle kernels every 5 min
c.MappingKernelManager.cull_connected = False       # Don't cull connected kernels

# File management
c.ContentsManager.hide_globs = [
    '__pycache__', '*.pyc', '*.pyo', '.DS_Store', '*.so', '*.dylib'
]
c.FileContentsManager.delete_to_trash = True        # Use trash instead of permanent delete

# Security
c.ServerApp.disable_check_xsrf = False              # Enable XSRF protection
c.ServerApp.tornado_settings = {
    'headers': {
        'Content-Security-Policy': "frame-ancestors 'self'"
    }
}

# Logging
c.ServerApp.log_level = 'INFO'                      # Logging level
### Elenco delle impostazioni utente **Location**: `~/.jupyter/lab/user-settings/` (Linux/macOS) o `%APPDATA%\jupyter\lab\user-settings\` (Windows) Esempio di impostazioni tematiche (`@jupyterlab/apputils-extension/themes.jupyterlab-settings`): Traduzione: ### Protezione password
# Set password interactively
jupyter lab password

# Or generate hash programmatically
python -c "from jupyter_server.auth import passwd; print(passwd('your-password'))"
Quindi aggiungere a config: Traduzione: ## Common Use Cases ### Use Case 1: Remote Server Setup Traduzione: ### Use Case 2: Creazione di un ambiente Kernel personalizzato Traduzione: ### Use Case 3: Batch Notebook Execution Traduzione: ### Use Case 4: Docker Deployment with Persistent Storage Traduzione: ### Use Case 5: Convertire Notebooks in Presentazione Traduzione: ## Tastiera Scorciatoie (Modalità Command) _Tabella_153__ # Migliori Pratiche - **Utilizzare gli ambienti virtuali**: lavorare sempre all'interno di ambienti isolati (conda o venv) per gestire le dipendenze ed evitare conflitti tra i progetti. - **Riavviamento del kernel regolare**: Riavviare i kernel periodicamente durante lunghe sessioni per cancellare la memoria e garantire la riproducibilità. Utilizzare "Riavviare Kernel ed eseguire tutte le celle" per verificare l'ordine di esecuzione del notebook. - **Integrazione del controllo delle vibrazioni**: Conservare i notebook in Git ma utilizzare `.gitignore` per escludere i file di checkpoint (`.ipynb_checkpoints/`). Prendere in considerazione l'utilizzo `nbstripout` per rimuovere l'output prima di commettere. - **Secure Remote Access**: Quando espongono JupyterLab da remoto, utilizzare sempre password o gettoni forti, abilitare HTTPS con certificati SSL e considerare l'utilizzo di SSH tunneling o VPN per una maggiore sicurezza. - **Resource Management**: Configurare il kernel per liberare la memoria, specialmente su server condivisi. Impostare i valori di timeout appropriati in base alla tipica durata del flusso di lavoro. - **Organizzazione del codice modulare**: Tenere i quaderni concentrati su analisi specifiche. Estrarre le funzioni riutilizzabili in moduli `.py`_ e importarle, piuttosto che duplicare il codice attraverso i notebook. **Abitudini di documentazione**: Utilizzare le celle di Markdown per documentare il processo di pensiero, la metodologia e i risultati. Includere le dipendenze dell'ordine dell'esecuzione cellulare e il tempo di esecuzione previsto per le celle a lungo termine. - Disciplina dell'estensione ** Installare solo estensioni necessarie per evitare bloat e potenziali conflitti. Aggiorna regolarmente le estensioni e ricostruisci JupyterLab dopo gli aggiornamenti. ## Risoluzione dei problemi _Tabella_154__ ## Comandi magici utili (In Notebooks) | Magic Command | Description | |---------------|-------------| | __INLINE_CODE_120__ | List all available magic commands | | __INLINE_CODE_121__ | Time execution of single statement | | __INLINE_CODE_122__ | Time execution of entire cell | | __INLINE_CODE_123__ | Time repeated execution for average | | __INLINE_CODE_124__ | Display plots inline in notebook | | __INLINE_CODE_125__ | Load external Python file into cell | | __INLINE_CODE_126__ | Execute external Python script | | __INLINE_CODE_127__ | Print current working directory | | __INLINE_CODE_128__ | Change working directory | | __INLINE_CODE_129__ | List environment variables | | __INLINE_CODE_130__ | Install package in current kernel | | __INLINE_CODE_131__ | Install package via conda | | __INLINE_CODE_132__ | Execute cell as bash script | | __INLINE_CODE_133__ | Activate interactive debugger | | `%reset` | Cancella tutte le variabili dal namespace |