.. _ecosystem: Ecosistema Python ================= Queste brevi note danno alcune indicazioni di base per l'installazione di Python e dell'ecosistema scientifico associato, e possono essere utili per mettersi in condizione di eseguire i frammenti di codice contenuti nelle dispense. La pagina principale di `Python `_ è il punto di ingresso fondamentale per tutte le questioni legate al linguaggio, comprese l'installazione e la documentazione. Se non avete particolari esigenze (o non sapete cosa vuol dire avere particolari esigenze) potete prendere l'ultima versione stabile (e.g., 3.13.7 a settembre 2025). Il tab "Downloads" in alto nella pagina web dovrebbe indirizzarvi di default all'ultima versione stabile per il vostro sistema operativo. Installazione ------------- Se usate Mac OS o GNU/Linux è più o meno garantito che abbiate già una versione di sistema di Python, e probabilmente questa va bene. Controllare solamente che non sia più vecchia della 3.7, nel qual caso, probabilmente, vale la pena di installarne una più recente. Se utilizzate Windows (e non avete Python installato sul vostro sistema), scaricate l'installer dalla `pagina web dei downloads `_ ed eseguitelo. .. note:: Quando lanciate l'installer di Windows potete selezionare l'installazione standard, `assicurandovi di spuntare la check box che aggiunge l'eseguibile ``Python.exe`` alla variabile d'ambiente ``PATH``` (dovrebbe essere in basso nella finestrella di avvio). Questo vi permetterà di lanciare l'interprete da terminale. Arrivati al termine dell'installazione, ed indipendentemente dal sistema operativo, assicuratevi di poter lanciare correttamente l'interprete Python dal vostro terminale, i.e., digitando ``pyton`` e premendo INVIO dovreste vedere qualcosa di simile a .. code-block:: python Python 3.13.7 (main, Aug 14 2025, 00:00:00) [GCC 15.2.1 20250808 (Red Hat 15.2.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> Se vedete apparire i tre caratteri ``>>>`` siete a cavallo---potete iniziare ad eseguire comandi Python interattivamente. In caso contrario fate un respiro profondo e cercate di capire se e cosa non è andato secondo i piani, perché con ogni probabilità non avrete fortuna con la prossima sezione. .. warning:: A seconda del sistema operativo (e.g., con versioni recenti di Mac OS) è possibile che il comando per lanciare l'interprete Python non si chiami ``python`` ma ``python3``. Si tratta di accidente storico che, nel 2025, è estremamente poco interessante; il messaggio è: se non funziona il prima provate il secondo prima di gettare la spugna. Pacchetti aggiuntivi -------------------- Una volta installato Python siete a buon punto, ma non ancora alla fine: oltre al linguaggio, avrete bisogno almeno di tre pacchetti esterni aggiuntivi, da installare a parte: * `numpy `_ per l'algebra lineare; * `scipy `_ per il fitting (tra le altre cose); * `matplotlib `_ per fare grafici. La buona notizia è che, se potete lanciare l'interprete Python da terminale, con ogni probabilità potete anche lanciare il `package installer`, ``pip``: .. code-block:: shell pip install numpy scipy matplotlib Se tutto è andato come doveva, a questo punto dovreste essere in grado di lanciare l'inteprete Python ed importare i pacchetti .. code-block:: python Python 3.13.7 (main, Aug 14 2025, 00:00:00) [GCC 15.2.1 20250808 (Red Hat 15.2.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import scipy >>> import matplotlib >>> Se tutti e tre i comandi di import arrivano a completamento senza messaggi d'errore, congratulazione: siete quasi pronti! Se invece vedete qualcosa di simile a .. code-block:: >>> import numpy Traceback (most recent call last): File "", line 1, in import numpy ModuleNotFoundError: No module named 'numpy' >>> allora, purtroppo, qualcosa è andato storto. .. warning:: Se siete su uno di quei sistemi (e.g., Mac OS) in cui l'inteprete Python si chiama ``python3`` e non ``python``, allora con ogni probabilità il `package manager` si chiama ``pip3`` e non ``pip``. Vale quanto detto prima: in questo caso provate .. code-block:: shell pip3 install numpy scipy matplotlib Altre cose? ----------- Si. Come minimo avrete bisogno di un `editor di testo`. In realtà è molto probabile che, una volta che avete iniziato a programmare, vi convinciate di aver bisogno di un `ambiente intergrato di sviluppo` (`integrated development environment`, o IDE, in inglese). Se volete replicare il setup utilizzato in laboratorio, installate `Visual Studio Code `_. Funziona tutto? --------------- Prova a copiare ed incollare il codice qui sotto nel tuo editor preferito e ad eseguirlo. Se appare un grafico con dei punti ed una retta dovresti essere `up and running`! .. code-block:: python import numpy as np from matplotlib import pyplot as plt from scipy.optimize import curve_fit def fit_model(x, m, q): return m * x + q t = np.array([1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) z = np.array([2.4, 4.3, 5.2, 8.55, 9.38, 12.2, 14.5, 16.2, 17.3, 19.5]) sigma_z = 0.5 popt, pcov = curve_fit(fit_model, t, z, sigma=sigma_z) plt.errorbar(t, z, sigma_z, fmt='o') plt.plot(t, fit_model(t, *popt)) plt.xlabel('Tempo [s]') plt.ylabel('Spazio percorso [cm]') plt.show()