Strumenti utili che possono aiutarti a sviluppare codice Python di Exercism sul tuo computer.
Questa è una raccolta di strumenti popolari nella nostra community. Non vuole essere prescrittiva né esaustiva. Pensiamo che questi strumenti facciano bene il loro lavoro, ma ci sono sicuramente altri strumenti altrettanto validi. Se hai un editor, un IDE, uno strumento o un plugin da consigliare, ti invitiamo ad aggiungerlo a questo documento su GitHub.
Prima di iniziare a esplorare, assicurati di avere installata una versione recente di Python.
La piattaforma web di Exercism attualmente supporta Python 3.10 - 3.13.5 (esercizi e test) e Python 3.13.5 (strumenti).
Il nostro test runner online attualmente usa pytest 8.4.0 e pytest-subtests 0.14.2.
Il nostro analyzer online usa pylint 4.0.4.
Usare versioni diverse di Python, pytest o pylint in locale potrebbe darti risultati diversi da quelli del sito.
Per maggiori informazioni, fai riferimento a Installare Python in locale.
Gli ambienti virtuali di Python offrono un isolamento leggero del runtime e dei pacchetti. Possono aiutarti a organizzare i progetti, tenendo raggruppati i pacchetti Python che installi dentro la directory di un ambiente specifico. Ambienti diversi possono contenere versioni diverse del runtime di Python insieme alle dipendenze di un progetto o di una libreria. Questo aiuta a evitare bug e incompatibilità causati dall'aggiornamento di una libreria per un progetto che «rompe» una dipendenza in un altro.
Oggi esistono molti strumenti di ambiente virtuale e simili agli ambienti virtuali, e un movimento crescente che preferisce usare i metadati di script inline, i dev container o docker al posto degli ambienti virtuali. È importante provare strategie diverse e trovarne una adatta al tuo stile di sviluppo e alle esigenze del progetto. Non dare per scontato che le strategie presentate qui vadano bene per tutti o che siano le tue uniche opzioni. Per una panoramica più generale degli strumenti non trattati qui, dai un'occhiata a questo articolo di Bas Nijholt e resta curioso.
Qui tratteremo tre importanti strumenti per gli ambienti virtuali: venv della libreria standard di Python, conda env di terze parti, che usa il gestore di pacchetti conda e (di solito) la distribuzione Anaconda di Python, e uv, il sostituto di pip + venv realizzato da terze parti.
Tutti e tre sono abbastanza semplici da usare e/o installare.
Inoltre, PyEnv, Poetry e virtualenvwrapper sono strumenti che possono aiutarti a gestire più versioni di Python e più ambienti Python sulla stessa macchina.
venv
Per creare un ambiente virtuale con venv, usa cd per spostarti nella directory in cui vuoi archiviare i tuoi ambienti.
Dovrebbe essere una directory separata dal codice del tuo progetto, e che non inserirai nel controllo di versione.
Poi esegui il comando venv con il nome della cartella in cui vuoi archiviare questo particolare ambiente.
La convenzione comune è chiamare quella cartella <project-name-here>_venv:
Windows
PS C:\Users\foobar> py -m venv {name_of_virtualenv}
Per attivare l'ambiente virtuale, esegui il seguente comando:
PS> .\{name_of_virtual_env}\Scripts\activate.bat
(venv) PS> _
Linux/MacOS
$ python3 -m venv {name_of_virtualenv}
created virtual environment ... in 8568ms
Per attivare l'ambiente virtuale, esegui il seguente comando:
$ source {name_of_virtual_env}/bin/activate
(venv) $ _
Una volta attivato un venv, puoi eseguire i comandi pip per installare pacchetti «dentro» l'ambiente.
I pacchetti installati saranno associati alla versione di Python del venv e si troveranno dentro {name_of_virtual_env}/Lib.
Disattivare un ambiente virtuale si fa chiamando lo script deactivate, che si trova nella stessa directory di activate.
conda
La versione più recente di conda si può installare tramite miniconda.
Questo cheatsheet di conda è molto utile, così come la documentazione di conda.
Creato originariamente come gestore di pacchetti Python per la popolare Anaconda distribution di «Python scientifico», conda è stato poi generalizzato ed esteso.
Gli ambienti Conda sono simili ai venv, con la differenza principale che conda può creare ambienti virtuali e installare pacchetti per molti altri linguaggi di programmazione oltre a Python.
Tra i linguaggi supportati da Conda ci sono R, JavaScript, Ruby, Fortran, C/C++, Scala, Java e altri ancora.
Per un confronto tra i comandi di conda e quelli di venv, consulta il riferimento dei comandi di conda.
Per creare un ambiente conda, digita quanto segue, sostituendo {name of environment} con il nome che hai scelto e python={version} con la versione di Python che desideri.
A questo punto puoi aggiungere eventuali altri pacchetti che vuoi installare nell'ambiente:
$ conda create --name {name of environment} python={version} "pytest>6.0" pylint
...
## Package Plan ##
environment location: /usr/local/anaconda3/envs/test_env
added / updated specs:
- pylint
- pytest[version='>6']
- python=3.10
The following packages will be downloaded:
package | build
---------------------------|-----------------
astroid-2.11.1 | py310h2ec42d9_0 364 KB conda-forge
dill-0.3.4 | pyhd8ed1ab_0 62 KB conda-forge
lazy-object-proxy-1.7.1 | py310he24745e_0 32 KB conda-forge
....
additional packages here
....
------------------------------------------------------------
Total: 21.8 MB
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate test_env
#
# To deactivate an active environment, use
#
# $ conda deactivate
Creare un ambiente conda su Windows richiede gli stessi comandi generali di Linux/MacOS.
Tuttavia, è consigliabile usare il prompt cmd o powershell di Anaconda invece di aggiungere conda al tuo path:
(base) PS C:\Users\foobar> conda create --name {name_of_environment} python={version} "pytest>6" pylint
...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\ProgramData\Anaconda3\envs\test_env
added / updated specs:
- pylint
- pytest[version='>6']
- python=3.10
The following packages will be downloaded:
package | build
---------------------------|-----------------
astroid-2.11.1 | py310h5588dad_0 364 KB conda-forge
attrs-21.4.0 | pyhd8ed1ab_0 49 KB conda-forge
bzip2-1.0.8 | h8ffe710_4 149 KB conda-forge
...
additional packages here
...
------------------------------------------------------------
Total: 37.5 MB
Proceed ([y]/n)? y
...
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate test_env
#
# To deactivate an active environment, use
#
# $ conda deactivate
Lavorare ai progetti con uv: uv
uv è uno strumento di gestione di pacchetti e progetti Python di Astral, scritto in Rust.
È stato progettato per sostituire pip, venv, poetry e altri strumenti di gestione dei pacchetti e delle dipendenze di Python.
A differenza di Conda o Mamba, uv è specializzato solo per Python.
Tuttavia, uv supporta la compilazione di moduli di estensione Python scritti in altri linguaggi, come Fortran.
Astral è anche lo sviluppatore del popolare linter Ruff e di TY, un controllo statico dei tipi per le annotazioni di tipo di Python, entrambi scritti in Rust.
Invece di entrare nei dettagli qui, la documentazione di UV è la tua fonte migliore per l'installazione e la configurazione.
Documentazione e contesto: virtualenvwrapper.
Il pacchetto virtualenvwrapper funziona sopra venv per gestire tutti i tuoi ambienti virtuali in un unico posto.
Puoi creare, copiare, eliminare e cambiare ambiente con comandi simili a quelli di Linux, come lsvirtualenv (per elencare gli ambienti) e mkvirtualenv (per creare un ambiente).
Ti permette anche di aggiungere altri strumenti di gestione tramite estensioni.
Puoi persino creare le tue estensioni per lo strumento seguendo questo tutorial.
pyenv è il fork per Python dei popolari strumenti rbenv/ruby-build, adattato a Python.
In sostanza è un insieme di script e shim che permettono di impostare le versioni di Python sia a livello globale che per singolo utente.
Cerca di rispettare la tradizione Unix dello strumento discreto, con un unico scopo, che fa bene una sola cosa.
pyenv e la documentazione di pyenv si trovano su GitHub.
Visual Studio Code (VS Code) è un editor di codice gratuito creato da Microsoft.
Include un ottimo supporto sia per gli ambienti virtuali e conda, sia per docker (tramite il plug-in docker), e può essere esteso con molti plugin diversi per il testing, il linting, la formattazione e lo sviluppo web.
ID dell'estensione: ms-python.python

L'estensione Python di Microsoft è l'estensione Python ufficiale di Microsoft per VS Code, e un'installazione altamente consigliata. Offre un'ampia gamma di funzionalità, tra cui la gestione degli ambienti, la gestione dei test, il linting e il debug. Dalla versione più recente, installare l'estensione Python di Microsoft scarica anche pylance (un pacchetto popolare per il linting e la validazione del codice Python) e jupyter (per lavorare con i Jupyter Notebook).
PyCharm è un IDE (Integrated Development Environment, ambiente di sviluppo integrato) creato da JetBrains.
È progettato appositamente per Python ed è popolare tra i professionisti .
Come VS Code, può essere esteso con vari plugin, temi e formattatori gratuiti e a pagamento.
La versione a pagamento supporta anche lo sviluppo con Django, lo sviluppo con Docker e l'integrazione con i database.
unittest per impostazione predefinita, quindi devi avere pytest installato nell'ambiente che stai usando con pycharm (vedi i documenti su interprete e ambiente qui sopra) e poi indicare a pycharm di usarlo.coverage per pytest rompe il debugger di pycharm.
Per maggiori informazioni, vedi run/debug configuration: pytest.Spyder è un IDE Python multipiattaforma, gratuito e open source, pensato per la comunità scientifica. Di solito è incluso nella distribuzione Anaconda di Python, ma può essere installato da solo e usato con qualsiasi versione di Python. Consigliamo un'installazione autonoma per garantire la massima flessibilità ed evitare conflitti tra pacchetti.
Spyder supporta pienamente gli ambienti venv e conda.
Include un terminale interattivo IPython integrato, un debugger interattivo e un ricco supporto per grafici ed esplorazione dei dati direttamente nell'editor.
Il completamento del codice e il linting aggiuntivi sono forniti tramite kite.
Le integrazioni con i Jupyter Notebook e con gli strumenti di testing sono fornite tramite plugin sviluppati dalla community.
Puoi anche scrivere plugin tuoi, usando l'API di Spyder.
FAQ di Spyder
Impostare versioni/ambienti virtuali di Python in Spyder
Configurare Spyder per eseguire test unittest e pytest tramite spyder unittest plugin
Altri plugin di spyder
Emacs è un editor di testo gratuito, open source e altamente personalizzabile, scritto in Lisp. Un'ottima guida all'installazione e alla configurazione è disponibile su Real Python.
Vim è una versione gratuita e «migliorata» dell'editor di testo standard di Unix vi.
È disponibile per una grande varietà di sistemi operativi e distribuzioni Linux/Unix.
Un'ottima guida all'installazione e alla configurazione è disponibile su Real Python, e utili cheat sheet si trovano su vimsheet, glump e rtorr.
Anche se decidi che modificare codice Python in vim non fa per te, ti consigliamo di prendere familiarità con un insieme di comandi di base.
vim o vi è spesso un editor di testo «di base» o «predefinito» nelle distribuzioni Linux e Unix, ed è l'editor predefinito per i messaggi di commit di git (tra le altre cose) su quei sistemi.
È molto probabile che ti ritrovi su un sistema *nix a dover modificare un file di configurazione con solo vi disponibile, quindi sapere come uscire da vim è (quantomeno) una buona autodifesa.
Spacemacs (repository GitHub) è una distribuzione gratuita di Emacs guidata dalla community, che combina le funzionalità di Emacs e Vim.
Sublime text è un editor di testo a pagamento per la programmazione, realizzato da Sublime HQ Pty Ltd. È simile a VS Code e Atom, con molti pacchetti e plugin per la personalizzazione. Puoi anche sviluppare plugin tuoi per l'editor usando Python.