Python è un linguaggio di programmazione estremamente versatile e potente, noto per la sua semplicità e leggibilità. È ampiamente utilizzato in vari settori grazie alla sua vasta libreria standard e alle numerose librerie di terze parti disponibili.
Ambienti di sviluppo integrati (IDE) per Python
[modifica | modifica wikitesto]- Atom, un IDE multipiattaforma open source con autocompletamento e altre funzionalità per Python messe a disposizione come estensioni.
- Codelobster, un IDE multipiattaforma per vari linguaggi, tra cui Python.
- EasyEclipse, un IDE open source per Python e altri linguaggi.
- Eclipse, con il plug-in Pydev. Oltre a Python, supporta molti altri linguaggi.
- Emacs, con la modalità python integrata. [1]
- Eric, un IDE per Python e Ruby
- Geany, IDE per lo sviluppo Python e altri linguaggi.
- IDLE, un semplice IDE fornito in bundle con l'implementazione predefinita del linguaggio.
- Jupyter Notebook, un IDE che supporta markdown, Python, Julia, R e molti altri linguaggi.
- Komodo IDE e IDE PHOTOS Python, Perl, PHP e Ruby.
- NetBeans scritto in Java e può essere eseguito ovunque sia installata una JVM .
- Ninja-IDE, software libero, scritto in Python e Qt, il nome Ninja è un acronimo ricorsivo che sta per Ninja-IDE Is Not Just Another IDE (Ninja-IDE Non è solo un altro IDE).
- PyCharm, un IDE parzialmente open source dal 2013 per lo sviluppo Python.
- PythonAnywhere, un IDE online e un servizio di web hosting .
- Python Tools per Visual Studio, plug-in gratuito e open source per Visual Studio .
- Spyder, IDE per la programmazione scientifica.
- Vim, con il livello "lang#python" abilitato. [2]
- Visual Studio Code, un IDE open source per vari linguaggi, tra cui Python.
- Wing IDE, IDE proprietario multipiattaforma con alcune versioni/licenze gratuite per Python.
- Replit, un IDE online che supporta più linguaggi.
Gestori di pacchetti Python e distribuzioni Python
[modifica | modifica wikitesto]- Anaconda, distribuzione Python con gestore di pacchetti
conda
- Enthought, Enthought Canopy Python con gestore di pacchetti Python
- pip, sistema di gestione dei pacchetti utilizzato per installare e gestire software scritto in Python
Applicazioni
[modifica | modifica wikitesto]- A-A-P, a tool used to download, build and install software via Makefile-like "recipes"
- Anaconda (installer), un programma di installazione open source utilizzato da alcune distribuzioni Linux tra cui Fedora Linux, CentOS, and Red Hat Enterprise Linux.
- Anki, programma di flashcard a ripetizione spaziata
- Ansible, software libero che consente di automatizzare le procedure di configurazione e gestione sui sistemi unix-like e Windows
- Bazaar, software libero per il controllo versione distribuito
- BitBake, strumento di compilazione simile a make incentrato alle distribuzioni e ai pacchetti per Linux embedded
- BitTorrent, client originale
- Buildbot, sistema di integrazione continua
- Buildout, strumento perla compilazione, utilizzato principalmente per scaricare e impostare dipendenze software e distribuzione
- Calibre, gestore di ebook open source
- Celery, software open source estremamente popolare utilizzato per gestire compiti asincroni in applicazioni software
- Chandler, software per la gestione delle informazioni personali (PIM)
- Cinema 4D, software di modellazione, animazione e rendering 3D
- Conch, implementazione del protocollo Secure Shell (SSH) basato sul framework Twisted
- Deluge, client BitTorrent per GNOME
- Dropbox, servizio di file hosting
- Exaile, lettore multimediale open source
- Gajim, client di messaggistica istantanea multipiattaforma per protocollo XMPP
- GlobaLeaks, software progettato per facilitare il whistleblowing in modo sicuro e anonimo
- GNOME Soundconverter,utilità progettata per la conversione di file audio
- Gramps, software di genealogia open source
- Gunicorn, HTTP WSGI Python utilizzato per applicazioni web scritte in Python
- GYP (Generate Your Projects), strumento di automazione della build che semplifica la creazione di progetti su più piattaforme
- Image Packaging System (IPS), sistema di packaging delle immagini
- Juice, popolare podcast downloader
- Mercurial sistema di controllo versione distribuito, multipiattaforma
- Miro, applicazione per l'internet TV
- Morpheus, software di file sharing peer-to-peer, simile a Napster o eMule
- MusicBrainz Picard, strumento per organizzare la tua collezione musicale
- Nicotine, client grafico per la rete peer-to-peer Soulseek.
- OpenLP, software progettato specificamente per le chiese e le comunità religiose
- OpenShot Video Editor
- OpenStack, software libero di gestione del cloud computing
- Pip, gestore di pacchetti che semplifica notevolmente l'installazione, l'aggiornamento e la rimozione di librerie e moduli aggiuntivi per il tuo ambiente di sviluppo Python
- PiTiVi, software di editing video non lineare
- Portage, sistema di gestione dei pacchetti utilizzato principalmente nella distribuzione Linux Gentoo
- Pychess,programma di gioco degli scacchi
- Quake Army Knife, strumento progettato per la creazione e la modifica di livelli e asset per i giochi della serie Quake
- Quod Libet, lettore audio noto per la sua flessibilità e personalizzazione.
- Resolver One, un foglio elettronico
- SageMath, strumento di calcolo matematico progettato per offrire un'alternativa completa e flessibile ai software commerciali come Mathematica o Maple
- Salt, strumento progettato per automatizzare la gestione e la configurazione di qualsiasi infrastruttura o applicazione su larga scala
- SCons, strumento che semplifica il processo di costruzione di software.
- Shinken,strumento per monitorare la salute e le performance dei sistemi informatici
- TouchDesigner, strumento utilizzato principalmente nel mondo della creazione di contenuti visivi interattivi e real-time
- Tryton, piattaforma Enterprise Resource Planning (ERP)
- Ubuntu Software Center, programma grafico, deprecato, che permetteva agli utenti di Ubuntu di installare, rimuovere e aggiornare software in modo semplice e intuitivo.
- Wicd, network manager per Linux
- YUM, strumento a linea di comando utilizzato per gestire i pacchetti software su distribuzioni Linux basate su Red Hat
- Waf, strumento per automatizzare i processi di build
- Xpra, strumento che consente di accedere a un desktop remoto in modo efficiente e flessibile
Applicazioni web
[modifica | modifica wikitesto]- Allura, Piattaforma open source per la gestione di progetti software, che include strumenti per il controllo delle versioni, il tracciamento dei bug e la collaborazione.
- Bloodhound, Strumento di ricerca per trovare vulnerabilità nei sistemi informatici, in particolare nei codici sorgente.
- ERP5, un potente ERP/CRM open source utilizzato nei settori aerospaziale, abbigliamento, bancario e per l'e-government
- ERPNext, un ERP/CRM open source
- FirstVoices, Progetto online che documenta e conserva le lingue indigene delle Prime Nazioni del Canada.
- Kallithea, Sistema di gestione del codice sorgente, con funzionalità simili a Git, ma con un'interfaccia web più user-friendly.
- Mailman, Software per la gestione di mailing list, che consente di creare e gestire facilmente liste di discussione.
- MakeHuman, Applicazione gratuita e open source per la creazione di modelli 3D di personaggi umani.
- MoinMoin, Wiki semplice e leggero, ideale per progetti di piccole e medie dimensioni.
- Odoo (precedentemente OpenERP), Suite ERP open source completa e modulare, che offre una vasta gamma di applicazioni per la gestione aziendale.
- Planet, Aggregatore di notizie RSS personalizzabile, spesso utilizzato per creare siti web che raccolgono contenuti da diverse fonti.
- Plone, Piattaforma di content management system (CMS) open source, flessibile e personalizzabile.
- Roundup, Sistema di tracciamento dei bug e di gestione dei progetti, con un'interfaccia web intuitiva.
- Tor2web, Strumento che consente di accedere a siti web anonimi tramite la rete Tor
- Trac, Sistema di tracciamento dei ticket e di gestione dei progetti, spesso utilizzato nello sviluppo software.
- ViewVC, un'interfaccia web per la navigazione nei repository CVS e SVN
Videogiochi
[modifica | modifica wikitesto]- Battlefield 2 utilizza Python per i suoi componenti aggiuntivi e per molte delle sue funzionalità. [3]
- Bridge Commander [4]
- Disney's Toontown Online è scritto in Python e utilizza Panda3D per la grafica. [5] [6]
- Doki Doki Literature Club!, una visual novel horror psicologica che utilizza il motore Ren'Py
- Eve Online utilizza Stackless Python .
- Frets on Fire è scritto in Python e utilizza Pygame
- Mount & Blade è scritto in Python.
- Pirati dei Caraibi Online è scritto in Python e utilizza Panda3D per la grafica.
- SpongeBob SquarePants: Revenge of the Flying Dutchman utilizza Python come linguaggio di scripting. [7] [8]
- The Sims 4 utilizza Python [9]
- The Temple of Elemental Evil, un gioco di ruolo per computer basato sulla classica ambientazione di Greyhawk Dungeons & Dragons
- Unity of Command è un wargame di livello operativo sulla campagna di Stalingrado del 1942-43 sul fronte orientale.
- Vampire: The Masquerade – Bloodlines, un gioco di ruolo per computer basato sull'ambientazione della campagna World of Darkness [10]
- Vega Strike, un simulatore spaziale open source, utilizza Python per la scrittura interna
- World of Tanks utilizza Python per la maggior parte delle sue attività. [11]
Framework Web
[modifica | modifica wikitesto]- BlueBream: Framework web leggero e minimalista.
- CherryPy: Framework web semplice e scalabile, ottimo per progetti di piccole e medie dimensioni.
- CubicWeb: Framework web basato su RDF (Resource Description Framework) per applicazioni semantiche.
- Django: Framework web di alto livello, potente e versatile, adatto a progetti web complessi.
- Flask: Framework web leggero e flessibile, ideale per prototipazione e applicazioni web semplici.
- Google App Engine: Piattaforma di Google Cloud per lo sviluppo e l'hosting di applicazioni web scalabili.
- Grok: Framework web basato su Zope, orientato all'esperienza utente.
- Jam.py: Framework web minimalista focalizzato sulla semplicità e la rapidità di sviluppo.
- Nevow: Framework web basato su templating e componenti per interfacce web dinamiche.
- Pylons: Framework web obsoleto, ma base per Pyramid.
- Pyramid: Framework web derivato da Pylons, flessibile e ben documentato.
- Python Paste: Collezione di middleware per applicazioni web Python.
- Quixote: Framework web Python classico, meno popolare rispetto ad alternative più recenti.
- RapidSMS: Piattaforma per lo sviluppo di applicazioni di messaggistica SMS.
- Spyce: Framework web Python orientato ai servizi web RESTful.
- TACTIC: Framework web Python per la gestione di contenuti aziendali (ECM).
- Tornado: Framework web ad alte prestazioni, ottimo per applicazioni web in tempo reale.
- TurboGears: Framework web full-stack Python per progetti web complessi.
- web2py: Framework web Python completo e open source, con focus sulla rapidità di sviluppo.
- Zope: Framework web Python utilizzato principalmente per la creazione di CMS
Framework grafici
[modifica | modifica wikitesto]- Pygame: Una libreria Python multipiattaforma per lo sviluppo di videogiochi 2D. Offre strumenti per gestire grafica, suono, input e molto altro.
- Panda3D: Un motore grafico 3D open-source scritto in C++ e Python. È noto per la sua flessibilità e la sua capacità di creare giochi 3D complessi.
- Python Imaging Library (PIL): Una libreria Python per l'elaborazione di immagini. Permette di aprire, manipolare e salvare vari formati di immagine.
- Python-Ogre: Un binding Python per il motore grafico Ogre3D.
Framework dell'interfaccia utente
[modifica | modifica wikitesto]- appJar,Framework GUI semplice e intuitivo, ideale per creare interfacce utente rapidamente.
- Kivy, Framework multi-touch cross-platform per lo sviluppo di applicazioni con interfacce utente naturali (NUI)
- PyGTK, una popolare libreria GUI multipiattaforma basata su GTK+
- PyQt, un'altra libreria GUI multipiattaforma basata su Qt
- PySide, un'alternativa alla libreria PyQt, rilasciata sotto la licenza in stile BSD
- Tkinter è di fatto l'interfaccia grafica utente (GUI) di Python: è inclusa nella maggior parte delle versioni di Python ed è integrata in IDLE . Si basa sullo strumento di comando Tcl .
- wxPython, un port di wxWidgets e una libreria GUI multipiattaforma per Python
Pacchetti scientifici
[modifica | modifica wikitesto]- Astropy, una libreria di strumenti Python per l'astronomia e l'astrofisica.
- Biopython, una suite di biologia molecolare Python
- Gensim, una libreria per l'elaborazione del linguaggio naturale, inclusa la modellazione di argomenti non supervisionati e il recupero di informazioni
- graph-tool, un modulo Python per la manipolazione e l'analisi statistica dei grafici.
- Natural Language Toolkit, o NLTK, una suite di librerie e programmi per l'elaborazione simbolica e statistica del linguaggio naturale (NLP) per l'inglese
- Orange, uno strumento di programmazione visuale open source che offre visualizzazione interattiva dei dati e metodi per l'analisi statistica dei dati, il data mining e l'apprendimento automatico .
- NetworkX, un pacchetto per la creazione, la manipolazione e lo studio di reti complesse .
- SciPy, raccolta di pacchetti per matematica, scienze e ingegneria
- scikit-learn, una libreria per l'apprendimento automatico.
- TomoPy, un pacchetto per l'elaborazione dei dati tomografici e la ricostruzione delle immagini
- Veusz, un pacchetto di tracciamento scientifico
- VisTrails, un software scientifico per la gestione del flusso di lavoro e della provenienza con interfaccia di programmazione visuale e visualizzazione integrata (tramite Matplotlib, VTK).
- Apache Singa, libreria open source di apprendimento automatico distribuito
Librerie matematiche
[modifica | modifica wikitesto]- CuPy, una libreria per il calcolo accelerato da GPU
- Dashboard , una libreria per il calcolo parallelo
- Mathics, un'implementazione open source del linguaggio di programmazione Mathematica
- Matplotlib, fornisce funzioni matematiche e di tracciamento simili a MATLAB (utilizzando NumPy).
- NumPy, un'estensione del linguaggio che aggiunge il supporto per array e matrici multidimensionali grandi e veloci
- Plotly è una libreria di grafici scientifici per la creazione di grafici basati sul browser.
- SageMath applicazione che integra il lavoro di quasi 100 progetti
- SymPy, libreria Python dedicata al calcolo simbolico e all'analisi matematica
- PyMC, libreria Python dedicata alla modellazione statistica bayesiana
Librerie numeriche
[modifica | modifica wikitesto]- NumPy, Fornisce array multidimensionali e strumenti per operare su questi array in modo efficiente, costituendo la base per molte altre librerie scientifiche in Python.
- Pandas, Progettato per la manipolazione e l'analisi di dati, offre strutture dati come DataFrame e Series, ideali per lavorare con dati tabulari.
- SageMath, Un sistema completo di matematica open-source che include SymPy e molte altre librerie, offrendo un ambiente interattivo per calcoli matematici, algebra, geometria e altro.
- SciPy, Una raccolta di algoritmi e strumenti matematici di alto livello, costruita su NumPy, che copre un'ampia gamma di applicazioni come ottimizzazione, integrazione numerica, statistica e altro.
- ScientificPython, Una libreria più vecchia, ora in gran parte sostituita da SciPy e NumPy, ma ancora utilizzata in alcuni progetti legacy.
- SymPy, Una libreria per il calcolo simbolico, che permette di manipolare e risolvere espressioni matematiche in modo simile a come faresti a mano, ma utilizzando un computer.
Pacchetti di sviluppo aggiuntivi
[modifica | modifica wikitesto]- Beautiful Soup, Libreria Python per il parsing di documenti HTML e XML.
- Cheetah, Template engine Python per la generazione di contenuto dinamico, spesso usato per applicazioni web.
- Construct, Libreria Python per la definizione e il parsing di strutture dati, specialmente formati binari.
- Genshi, Template engine Python, spesso usato per applicazioni web.
- IPython, Shell Python interattivo che fornisce funzionalità avanzate per l'esplorazione dei dati, la visualizzazione e il calcolo scientifico.
- Jinja, Popolare template engine Python, spesso usato per applicazioni web.
- Kid, Linguaggio e motore di template per la generazione di XML e HTML.
- Meson build system, Sistema di build veloce, flessibile e user-friendly.
- mod_python, Modulo Python che permette di incorporare codice Python nelle configurazioni del server web Apache.
- PyObjC, Ponte tra Python e Objective-C, che consente a Python di interagire con i framework macOS e iOS.
- Robot Framework, Framework di automazione dei test generico, spesso usato per lo sviluppo guidato dai test di accettazione (ATDD).
- Setuptools, Raccolta di strumenti di distribuzione Python, usati per gestire pacchetti Python e le loro dipendenze.
- Sphinx, Strumento di generazione della documentazione, usato per creare documentazione di alta qualità in vari formati.
- SQLAlchemy, Toolkit SQL Python e Object-Relational Mapper (ORM), usato per interagire con i database.
- SQLObject, ORM più semplice per Python, che fornisce un'interfaccia più concisa e intuitiva.
- Storm, Sistema di calcolo distribuito in tempo reale, usato per elaborare grandi flussi di dati.
- Twisted, Framework di rete asincrono, usato per costruire applicazioni di rete.
- VPython, Modulo Python per la creazione di visualizzazioni 3D, spesso usato per scopi educativi.
Incorporato come linguaggio di scripting
[modifica | modifica wikitesto]Python viene utilizzato come linguaggio di scripting in importanti software tra cui:
Usi commerciali
[modifica | modifica wikitesto]- Abaqus (Finite Element Software)
- ADvantage Framework
- Amarok
- ArcGIS, piattaforma GIS con supporto allo scripting Python
- Autodesk Maya, è possibile creare oggetti 3D, animare personaggi, applicare materiali, texture e molto altro ancora tramite codice Python.
- Autodesk MotionBuilder
- Autodesk Softimage
- BioNumerics una suite software per la gestione, l'archiviazione e l'analisi (statistica) di tutti i tipi di dati biologici.
- Blender
- Boxee, software multipiattaforma per l'home theater
- Cinema 4D
- Civilization IV, il suo editor di mappe supporta Python
- Corel Paint Shop Pro
- Claws Mail con Python plugin
- DSHub
- ERDAS Imagine
- FL Studio, offre la possibilità di scrivere script in Python per controllare i dispositivi MIDI e di manipolare direttamente i dati presenti nel Piano Roll di FL Studio
- FreeCAD
- gedit
- GIMP
- GNAT consente di utilizzare Python per creare interfacce utente grafiche e poi integrarle con il core dell'applicazione scritto in Ada e altro ancora
- Houdini consente di estendere le sue funzionalità tramite script Python
- Inkscape, software gratuito e open source per la creazione e la manipolazione di grafica vettoriale
- Krita, software open source per la pittura digitale, progettato appositamente per artisti e illustratori
- MeVisLab, molte operazioni ripetitive, come l'elaborazione di grandi quantità di immagini o la creazione di report, possono essere automatizzate con script Python
- Minecraft
- MySQL Workbench, strumento di progettazione di database visuale
- Notepad++ ha un plugin chiamato PythonScript che consente di scrivere script per Notepad++ in Python
- Nuke
- OriginPro, molte operazioni, come l'importazione di dati, l'analisi statistica e la creazione di report, possono essere automatizzate con script Python
- ParaView
- Poser, offre PoserPython, un'estensione di Poser che permette di controllare e manipolare le scene 3D di Poser utilizzando il linguaggio di programmazione Python
- PyMOL, è possibile creare script personalizzati e sviluppare nuovi strumenti di visualizzazione o di analisi di dati biologici
- QGIS
- Rhinoceros 3D
- Rhythmbox
- Scribus
- SPSS, l'integrazione di Python con SPSS offre un potente strumento per gli analisti di dati che desiderano automatizzare i loro flussi di lavoro, personalizzare le analisi e integrare SPSS con altri strumenti.
- SublimeText
- Totem, lettore multimediale per GNOME
- Vim
- WeeChat, console IRC client
Implementazioni Python
[modifica | modifica wikitesto]Le implementazioni di Python includono: [12]
- CLPython – Implementazione, scritta in Common Lisp
- CPython – L'implementazione di riferimento, scritta in C11 . [13] Alcune distribuzioni degne di nota includono:
- Cython – linguaggio di programmazione per semplificare la scrittura di moduli di estensione C e C++ per il runtime Python CPython.
- IronPython – Python per piattaforme CLI (inclusi .NET e Mono )
- Jython – Python per piattaforme Java
- MicroPython – Implementazione Python 3 per piattaforme microcontrollori
- Nuitka: un compilatore sorgente-sorgente che compila il codice Python in eseguibili C / C++, o codice sorgente.
- Numba – Compilatore JIT basato su LLVM compatibile con NumPy
- Pyjs – un framework per lo sviluppo di applicazioni web basate su Python lato client
- PyPy – interprete Python e compilatore JIT.
- Shed Skin – un compilatore source-to-source da Python a C++
- Stackless Python – CPython con coroutine
Le implementazioni storiche di Python includono:
- Parrot – Macchina virtuale sviluppata principalmente come runtime per Raku e destinata a supportare linguaggi dinamici come Python, Ruby, Tcl, ecc.
- Psyco – Un just-in-time (JIT) compiler per Python che convertiva il bytecode Python in codice macchina nativo per accelerare l'esecuzione
- Pyrex – Un superset di Python che permette di scrivere estensioni C per Python, generando codice C ottimizzato.
- Python per S60 – Porting CPython per la piattaforma Nokia S60
- Unladen Swallow – progetto che mirava a migliorare le prestazioni di Python attraverso la compilazione just-in-time (JIT) e altre ottimizzazioni.
Riferimenti
[modifica | modifica wikitesto]- ^ seas.upenn.edu, https://www.seas.upenn.edu/~chaoliu/2017/09/01/python-programming-in-emacs/ .
- ^ spacevim.org, https://spacevim.org/use-vim-as-a-python-ide/ .
- ^ wiki.python.org, https://wiki.python.org/moin/OrganizationsUsingPython .
- ^ wiki.python.org, https://wiki.python.org/moin/OrganizationsUsingPython .
- ^ vol. 1, 2003, DOI:10.1145/950566.950589, https://dl.acm.org/doi/10.1145/950566.950589.
- ^ GitHub, https://github.com/peppythegod/ToontownOnline .
- ^ zenhax.com, https://zenhax.com/viewtopic.php?t=262 . URL consultato il 13 settembre 2022.
- ^ (EN) GitHub, https://github.com/Jellonator/chum-world . URL consultato il 13 settembre 2022.
- ^ Sims VIP, https://simsvip.com/2014/08/04/the-sims-4-creators-camp-modding-masterclass/ . URL consultato il 17 March 2018.
- ^ gamefaqs.gamespot.com, https://gamefaqs.gamespot.com/pc/914819-vampire-the-masquerade-bloodlines/faqs/54295 . URL consultato l'11 settembre 2020.
- ^ hackmag.com, https://hackmag.com/devops/interview-with-wot-developers/ .
- ^ wiki.python.org, https://wiki.python.org/moin/PythonImplementations . URL consultato il 14 dicembre 2017.
- ^ docs.python.org, https://docs.python.org/3.11/whatsnew/3.11.html#build-changes . URL consultato il 15 agosto 2022.
- ^ https://www.activestate.com/activepython.
- ^ software.intel.com, https://software.intel.com/distribution-for-python . URL consultato il 14 dicembre 2017.
- ^ python.org, https://www.python.org/downloads/ . URL consultato il 14 dicembre 2017.
Collegamenti esterni
[modifica | modifica wikitesto]- Python Package Index è la directory ufficiale delle librerie e dei moduli software Python
- Moduli utili dal wiki di Python.org
- Organizzazioni che utilizzano Python: un elenco di progetti che utilizzano Python
- Editor Python.org – Tabella multipiattaforma di vari editor Python