Come importare moduli in Python 3

Introduzione

Il linguaggio di programmazione Python viene fornito con una varietà di funzioni integrate. Tra queste ci sono diverse funzioni comuni, tra cui:

  • print() che stampa le espressioni
  • abs() che restituisce il valore assoluto di un numero
  • int() che converte un’altra tipologia di dato in un intero
  • len() che restituisce la lunghezza di una sequenza o collezione

Tuttavia, queste funzioni integrate sono limitate e possiamo fare uso dei moduli per creare programmi più sofisticati.

I moduli sono file Python .py che consistono in codice Python. Qualsiasi file Python può essere referenziato come modulo. Un file Python chiamato hello.py ha il nome di modulo hello che può essere importato in altri file Python o utilizzato nell’interprete della riga di comando di Python. Puoi apprendere come creare i tuoi moduli leggendo Come Scrivere Moduli in Python 3.

I moduli possono definire funzioni, classi e variabili che è possibile fare riferimento in altri file Python .py o tramite l’interprete della riga di comando di Python.

In Python, i moduli sono accessibili utilizzando l’istruzione import. Quando si fa ciò, si esegue il codice del modulo, mantenendo gli ambiti delle definizioni in modo che i file attuali possano utilizzarli.

Quando Python importa un modulo chiamato hello ad esempio, l’interprete cercherà prima un modulo incorporato chiamato hello. Se non viene trovato un modulo incorporato, l’interprete Python cercherà quindi un file chiamato hello.py in un elenco di directory che riceve dalla variabile sys.path.

Questo tutorial ti guiderà nel controllo e nell’installazione di moduli, nell’importazione di moduli e nell’aliasing di moduli.

Prerequisiti

Dovresti avere Python 3 installato e un ambiente di programmazione configurato sul tuo computer o server. Se non hai un ambiente di programmazione configurato, puoi fare riferimento alle guide di installazione e configurazione per un ambiente di programmazione locale o per un ambiente di programmazione sul tuo server appropriato per il tuo sistema operativo (Ubuntu, CentOS, Debian, ecc.)

Verifica e Installazione dei Moduli

Ci sono diversi moduli che sono inclusi nella Libreria Standard di Python, che contiene molti moduli che forniscono accesso alla funzionalità di sistema o forniscono soluzioni standardizzate. La Libreria Standard di Python fa parte di ogni installazione di Python.

Informazioni: Per seguire gli esempi di codice in questo tutorial, apri una shell interattiva di Python sul tuo sistema locale eseguendo il comando python3. Quindi puoi copiare, incollare o modificare gli esempi aggiungendoli dopo il prompt >>>.

Per verificare che questi moduli Python siano pronti all’uso, accedi al tuo ambiente di programmazione Python 3 locale o all’ambiente di programmazione basato su server e avvia l’interprete Python dalla riga di comando in questo modo:

  1. python

All’interno dell’interprete puoi eseguire l’istruzione import per assicurarti che il modulo specificato sia pronto per essere chiamato, come segue:

  1. import math

Dato che math è un modulo incorporato, il tuo interprete dovrebbe completare il compito senza alcun feedback, tornando al prompt. Ciò significa che non è necessario fare nulla per iniziare a utilizzare il modulo math.

Eseguiamo ora l’istruzione import con un modulo che potresti non avere installato, come la libreria di plotting 2D matplotlib:

  1. import matplotlib

Se matplotlib non è installato, riceverai un errore simile a questo:

Output
ImportError: No module named 'matplotlib'

Puoi disattivare l’interprete Python con CTRL + D e quindi installare matplotlib con pip.

Successivamente, possiamo usare pip per installare il modulo matplotlib:

  1. pip install matplotlib

Una volta installato, puoi importare matplotlib nell’interprete Python usando import matplotlib, e questo verrà completato senza errori.

Importazione dei Moduli

Per utilizzare le funzioni in un modulo, sarà necessario importare il modulo con un’istruzione import.

Un’istruzione import è composta dalla parola chiave import insieme al nome del modulo.

In un file Python, questo verrà dichiarato all’inizio del codice, sotto eventuali linee di shebang o commenti generali.

Quindi, nel file del programma Python my_rand_int.py importeremmo il modulo random per generare numeri casuali in questo modo:

my_rand_int.py
import random

Quando importiamo un modulo, lo rendiamo disponibile nel nostro programma corrente come uno spazio dei nomi separato. Ciò significa che dovremo fare riferimento alla funzione con la notazione puntata, come in [modulo].[funzione].

Nella pratica, con l’esempio del modulo random, questo potrebbe apparire come una funzione del tipo:

  • random.randint() che chiama la funzione per restituire un numero intero casuale, o
  • random.randrange() che chiama la funzione per restituire un elemento casuale da un intervallo specificato.

Creiamo un for loop per mostrare come chiameremo una funzione del modulo random all’interno del nostro programma my_rand_int.py:

my_rand_int.py
import random


for i in range(10):
    print(random.randint(1, 25))

Questo piccolo programma importa prima il modulo random nella prima riga, quindi passa a un for loop che lavorerà con 10 elementi. All’interno del loop, il programma stamperà un numero intero casuale nell’intervallo da 1 a 25 (incluso). Gli interi 1 e 25 vengono passati a random.randint() come suoi parametri.

Quando eseguiamo il programma con python my_rand_int.py, riceveremo 10 numeri interi casuali come output. Poiché sono casuali, è probabile che otterrai numeri diversi ogni volta che esegui il programma, ma genereranno qualcosa di simile a questo:

Output
6 9 1 14 3 22 10 1 15 9

I numeri interi non dovrebbero mai essere inferiori a 1 o superiori a 25.

Se desideri utilizzare funzioni da più di un modulo, puoi farlo aggiungendo più dichiarazioni import:

my_rand_int.py
import random
import math

Potresti vedere programmi che importano più moduli con virgole che li separano, come in import random, math, ma questo non è coerente con la Guida dello Stile PEP 8.

Per utilizzare il nostro modulo aggiuntivo, possiamo aggiungere la costante pi da math al nostro programma e diminuire il numero di numeri interi casuali stampati:

my_rand_int.py
import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

Ora, quando eseguiamo il nostro programma, riceveremo un output simile a questo, con un’approssimazione di pi come nostra ultima riga di output:

Output
18 10 7 13 10 3.141592653589793

La dichiarazione import ti consente di importare uno o più moduli nel tuo programma Python, permettendoti di utilizzare le definizioni costruite in quei moduli.

Utilizzando fromimport

Per fare riferimento agli elementi di un modulo all’interno dello spazio dei nomi del tuo programma, puoi utilizzare l’istruzione fromimport. Quando importi i moduli in questo modo, puoi fare riferimento alle funzioni per nome anziché attraverso la notazione a punto

In questa costruzione, puoi specificare quali definizioni referenziare direttamente.

In altri programmi, potresti vedere l’istruzione import prendere in riferimento tutto ciò che è definito all’interno del modulo utilizzando un asterisco (*) come carattere jolly, ma questo è sconsigliato da PEP 8.

Prima di tutto, vediamo come importare una funzione specifica, randint(), dal modulo random:

my_rand_int.py
from random import randint

Qui, chiamiamo prima la parola chiave from, quindi random per il modulo. Successivamente, utilizziamo la parola chiave import e chiamiamo la funzione specifica che vogliamo utilizzare.

Ora, quando implementiamo questa funzione all’interno del nostro programma, non scriveremo più la funzione nella notazione a punto come random.randint(), ma scriveremo solo randint():

my_rand_int.py
from random import randint


for i in range(10):
    print(randint(1, 25))

Quando esegui il programma, riceverai un output simile a quello che abbiamo ricevuto prima.

Utilizzare la costruzione fromimport ci consente di fare riferimento agli elementi definiti di un modulo all’interno dello spazio dei nomi del nostro programma, evitando la notazione a punto.

Alias dei Moduli

È possibile modificare i nomi dei moduli e delle loro funzioni all’interno di Python utilizzando la parola chiave as.

Potresti voler cambiare un nome perché hai già usato lo stesso nome per qualcos’altro nel tuo programma, un altro modulo che hai importato utilizza anche quel nome, o potresti voler abbreviare un nome più lungo che stai utilizzando spesso.

La costruzione di questa istruzione è simile a quanto segue:

import [module] as [another_name]

Modifichiamo il nome del modulo math nel nostro file di programma my_math.py. Cambieremo il nome del modulo da math a m per abbreviarlo. Il nostro programma modificato avrà questo aspetto:

my_math.py
import math as m


print(m.pi)
print(m.e)

All’interno del programma, ora ci riferiamo alla costante pi come m.pi invece di math.pi.

Per alcuni moduli, è comune utilizzare alias. La documentazione ufficiale del modulo matplotlib.pyplot richiede l’uso di plt come alias:

import matplotlib.pyplot as plt

Questo consente ai programmatori di aggiungere la parola più breve plt a una qualsiasi delle funzioni disponibili all’interno del modulo, come in plt.show(). È possibile vedere questa dichiarazione di importazione di alias in uso all’interno del nostro “Come Tracciare Dati in Python 3 Utilizzando il tutorial di matplotlib“.

Conclusione

Quando importiamo moduli, siamo in grado di chiamare funzioni che non sono integrate in Python. Alcuni moduli sono installati come parte di Python, e altri li installeremo tramite pip.

Utilizzare i moduli ci consente di rendere i nostri programmi più robusti e potenti poiché stiamo sfruttando codice esistente. Possiamo anche creare i nostri moduli per noi stessi e per altri programmatori da utilizzare in programmi futuri.

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3