This article needs additional citations for verification. (March 2012) |
The Python programming language is actively used by many people, both in industry and academia, for a wide variety of purposes.
Integrated Development Environments (IDEs) for Python
edit- Atom — an open-source cross-platform IDE with autocomplete, help and more Python features under package extensions.
- Codelobster — a cross-platform IDE for various languages, including Python.
- Colab — Jupyter notebook online integrated development environment developed by Google.
- EasyEclipse — an open-source IDE for Python and other languages.
- Eclipse — with the Pydev plug-in. Eclipse supports many other languages as well.
- Emacs, with the built-in python-mode.[1]
- Eric — an IDE for Python and Ruby.
- Geany — IDE for Python development and other languages.
- IDLE — a simple IDE bundled with the default implementation of the language.
- Jupyter Notebook — an IDE that supports markdown, Python, Julia — R and several other languages.
- Komodo IDE — an IDE PHOTOS Python, Perl, PHP and Ruby.
- NetBeans — is written in Java and runs everywhere where a JVM is installed.
- Ninja-IDE — free software, written in Python and Qt.
- PyCharm — a proprietary and open-source IDE for Python development.
- PythonAnywhere — an online IDE and Web hosting service.
- Python Tools for Visual Studio — Free and open-source plug-in for Visual Studio.
- Spyder — IDE for scientific programming.
- Thonny — beginner-friendly Python IDE.
- Vim — with "lang#python" layer enabled.[2]
- Visual Studio Code — an open-source IDE for various languages, including Python.
- Wing IDE — cross-platform proprietary with some free versions/licenses IDE for Python.
- Replit — an online IDE that supports multiple languages.
Unit testing frameworks
editPython package managers and Python distributions
edit- Anaconda – Python distribution with
conda
package manager. - Enthought – Enthought Canopy Python with Python package manager.
- pip – package management system used to install and manage software written in Python.[3]
Applications
editProductivity
edit- Calibre – an open-source e-book management tool.
- Chandler – a personal information manager including calendar, email, tasks and notes support that is not currently under development.
- Resolver One – a spreadsheet.
- SageMath – a combination of more than 20 main opensource math packages and provides easy to use web interface with the help of Python.
- Gajim – an instant messaging client for the Extensible Messaging and Presence Protocol (XMPP).
- Gramps – an open-source genealogy software.
Multimedia
edit- BitTorrent – original client, along with several derivatives.
- Cinema 4D – a 3D art and animation program for creating intros and 3-Dimensional text. Has a built in Python scripting console and engine.
- Deluge – a BitTorrent client.
- Exaile – an open-source audio player.
- GNOME SoundConverter – a program to convert sound files to various formats and qualities; a wrapper around GStreamer.
- Juice – a popular podcast downloader.
- Miro – a cross-platform internet television application.
- Morpheus – a file sharing client/server software operated by the company StreamCast.
- MusicBrainz Picard – a cross-platform MusicBrainz tag editor.
- Nicotine – a PyGTK Soulseek client.
- OpenLP – lyrics projection software.
- OpenShot – a video editor.
- PiTiVi – a video non-linear editing system.
- Quod Libet – a cross-platform free and open-source music player, tag editor and library organizer.
- TouchDesigner – a node based visual programming language for real-time interactive multimedia content.
Gaming
edit- PyChess – a cross-platform computer chess program.
- Quake Army Knife – an environment for developing 3D maps for games based on the Quake engine.
File hosting
edit- Dropbox – a web-based file hosting service.
- Gunicorn – a pre-fork web server for Web Server Gateway Interface (WSGI) applications.
Network tools
edit- Celery – an asynchronous task queue/job queue based on distributed message passing.
- Conch – implementation of the Secure Shell (SSH) protocol with Twisted.
- Shinken – a computer system and network monitoring software application compatible with Nagios.
- Wicd – a network manager for Linux.
- Xpra – a tool which runs X clients, usually on a remote host, and directs their display to the local machine without losing any state.
Package managers
edit- Image Packaging System (IPS) – an advanced, cross-platform package manager used in mosty Solaris and OpenSolaris–illumos derivatives.
- Pip – a package manager used to install and manage Python software packages such as those from the Python Package Index (PyPI) software repository.
- Portage – the heart of Gentoo Linux, an advanced package manager based on the BSD-style ports system.
- Ubuntu Software Center – a graphical package manager, installed by default in Ubuntu releases starting in 9.10 and ending in 16.04.
- Yellowdog Updater – Modified (YUM), a package management utility for RPM-compatible Linux operating systems.
Software management
edit- A-A-P – a tool used to download, build and install software via Makefile-like "recipes".
- Anaconda (installer) – an open-source system installer for Linux distributions primarily used in Fedora Linux, CentOS, and Red Hat Enterprise Linux.
- Ansible – a configuration management engine for computers by combining multi-node software deployment and ad hoc task execution.
- BitBake – a make-like build tool with the special focus of distributions and packages for embedded Linux cross compilation.
- Buildbot – a continuous integration system.
- Buildout – a software build tool, primarily used to download and set up development or deployment software dependencies.
- GYP (Generate Your Projects) – a build automation tool (similar to CMake and Premake) to generate native IDE project files (e.g., Visual Studio, Xcode, etc.) from one configuration.
- Mercurial – a cross-platform, distributed source management tool.
- Pungi – an open-source distribution compose tool to organize creating YUM and system image repositories.
- Salt – a configuration management and remote execution engine.
- SCons – a tool for building software.
- Waf – a build automation tool to assist automatic compiling and installing of computer software.
Other
edit- Anki – a spaced repetition flashcard program.
- Bazaar – a free distribution deed revision computer control system.
- GlobaLeaks – an open-source whistleblowing framework.
- OpenStack – a cloud computing IaaS platform.
- Tryton – a three-tier high-level general purpose computer application platform.
Web applications
edit- Allura – an ASF software forge for managing source code repositories, bug reports, discussions, wiki pages, blogs and more for multiple projects.
- Bloodhound – an ASF project management and bug tracking system.
- ERP5 – a powerful open-source ERP / CRM used in Aerospace, Apparel, Banking and for e-government.
- ERPNext – an open-source ERP / CRM.
- FirstVoices – an open-source language revitalization platform.
- Kallithea – a source code management system.
- Mailman – one of the more popular packages for running email mailing lists.
- MakeHuman – free software for creating realistic 3D humans.
- MoinMoin – a wiki engine.
- Odoo (formerly OpenERP) – business management software.
- Planet – a feed aggregator.
- Plone – an open-source content management system.
- Roundup – a bug tracking system.
- Tor2web – an HTTP proxy for Tor Hidden Services (HS).
- Trac – web-based bug/issue tracking database, wiki, and version control front-end.
- ViewVC – a web-based interface for browsing CVS and SVN repositories.
Video games
edit- Battlefield 2 uses Python for all of its add-ons and a lot of its functionality.[4]
- Bridge Commander.[5]
- Disney's Toontown Online is written in Python and uses Panda3D for graphics.[6][7]
- Doki Doki Literature Club!, a psychological horror visual novel using the Ren'Py engine.
- Eve Online uses Stackless Python.
- Frets on Fire is written in Python and uses Pygame.
- Mount & Blade is written in Python.[citation needed]
- Pirates of the Caribbean Online is written in Python and uses Panda3D for graphics.[citation needed]
- Ren'Py — visual novel engine built on Python and Pygame.
- SpongeBob SquarePants: Revenge of the Flying Dutchman uses Python as a scripting language.[8][9]
- The Sims 4 uses Python.[10]
- The Temple of Elemental Evil, a computer role-playing game based on the classic Greyhawk Dungeons & Dragons campaign setting.
- Unity of Command (video game) is an operational-level wargame about the 1942–43 Stalingrad Campaign on the Eastern Front.[citation needed]
- Vampire: The Masquerade – Bloodlines, a computer role-playing game based on the World of Darkness campaign setting[11]
- Vega Strike, an open-source space simulator, uses Python for internal scripting.[citation needed]
- World of Tanks uses Python for most of its tasks.[12]
Web frameworks
edit- BlueBream – a rewrite by the Zope developers of the Zope 2 web application server.
- CherryPy – an object-oriented web application server and framework.
- CubicWeb – a web framework that targets large-scale semantic web and linked open data applications and international corporations.
- Django – an MVT (model, view, template) web framework.
- Flask – a modern, lightweight, well-documented micro-framework based on Werkzeug and Jinja 2.
- Google App Engine – a platform for developing and hosting web applications in Google-managed data centers, including Python.
- Grok – a web framework based on Zope Toolkit technology.
- Jam.py (web framework) – a "full stack" WSGI rapid application development framework.
- Nevow – a web application framework originally developed by the company Divmod.
- Pylons – a lightweight web framework emphasizing flexibility and rapid development.
- Pyramid – a minimalistic web framework inspired by Zope, Pylons and Django.
- Python Paste – a set of utilities for web development that has been described as "a framework for web frameworks".
- Quixote – a framework for developing Web applications in Python.
- RapidSMS – a web framework which extends the logic and capabilities of Django to communicate with SMS messages.
- Spyce – a technology to embed Python code into webpages.
- Tornado – a lightweight non-blocking server and framework.
- TurboGears – a web framework combining SQLObject/SQLAlchemy, Kid/Genshi, and CherryPy/Pylons.
- web2py – a full-stack enterprise web application framework, following the MVC design.
- Zope 2 – an application server, commonly used to build content management systems.
Graphics frameworks
edit- Pygame – Python bindings for SDL.
- Panda3D – a 3D game engine for Python.
- Python Imaging Library – a module for working with images.
- Python-Ogre – a Python Language binding for the OGRE 3D engine.
UI frameworks
edit- appJar – cross-platform, open-source GUI library for Python. Provides easy wrapper functions around most of Tkinter with extra functionality built in.
- Kivy – open-source Python library for developing multitouch application software with a natural user interface (NUI).
- PyGTK – a popular cross-platform GUI library based on GTK+; furthermore, other GNOME libraries also have bindings for Python.
- PyQt – another cross-platform GUI library based on Qt; as above, KDE libraries also have bindings.
- PySide – an alternative to the PyQt library, released under the BSD-style licence.
- Tkinter – is Python's de facto GUI it is shipped in most versions of Python and is integrated in the IDLE. It is based Tcl command tool.
- wxPython – a port of wxWidgets and a cross-platform GUI library for Python.
Scientific packages
edit- Astropy – a library of Python tools for astronomy and astrophysics.
- Biopython – a Python molecular biology suite.
- Gensim – a library for natural language processing, including unsupervised topic modeling and information retrieval.
- graph-tool – a Python module for manipulation and statistical analysis of graphs.
- Natural Language Toolkit – or NLTK, a suite of libraries and programs for symbolic and statistical natural language processing (NLP) for English.
- NetworkX – a package for the creation, manipulation, and study of complex networks.
- Orange – an open-source visual programming tool featuring interactive data visualization and methods for statistical data analysis, data mining, and machine learning.
- SciPy – collection of packages for mathematics, science, and engineering.
- TomoPy – a package for tomographic data processing and image reconstruction.
- Veusz – a scientific plotting package.
- VisTrails – a scientific workflow and provenance management software with visual programming interface and integrated visualization (via Matplotlib, VTK).
Machine learning and artificial intelligence
edit- Apache MXNet — open-source deep learning framework for deep neural networks.
- Apache Singa – a library for deep learning.
- Chainer — deep learning framework on top of NumPy and CuPy.
- Horovod — framework by Uber for distributed deep learning training using TensorFlow, Keras, PyTorch, and Apache MXNet.
- Keras — high-level neural networks API, running on top of TensorFlow and other backends.
- MindSpore — deep learning framework developed by Huawei.
- PlaidML — Tensor compiler.
- PyTorch – open-source machine learning library based on the Torch library.
- QLattice — symbolic regression.
- scikit-learn – a library for machine learning.
- TensorFlow – software library for machine learning and artificial intelligence.
- Theano — machine learning library.
Mathematical libraries
edit- CuPy – a library for GPU-accelerated computing.
- Dask – a library for parallel computing.
- Manim – open-source Python mathematical animation and visualisation library from 3Blue1Brown.
- Mathics – an open-source implementation of the Mathematica programming language.
- Matplotlib – providing MATLAB-like plotting and mathematical functions (using NumPy).
- NumPy – a language extension that adds support for large and fast, multi-dimensional arrays and matrices.
- Plotly – is a scientific plotting library for creating browser-based graphs.
- SageMath – is a large mathematical software application which integrates the work of nearly 100 free software projects.
- SymPy – a symbolic mathematical calculations package.
- PyMC – python module containing Bayesian statistical models and fitting algorithms, including Markov chain Monte Carlo.
Numerical libraries
edit- NumPy, a BSD-licensed library that adds support for the manipulation of large, multi-dimensional arrays and matrices; it also includes a large collection of high-level mathematical functions. NumPy serves as the backbone for a number of other numerical libraries, notably SciPy. De facto standard for matrix/tensor operations in Python.
- Pandas, a library for data manipulation and analysis.
- SageMath is a large mathematical software application which integrates the work of nearly 100 free software projects and supports linear algebra, combinatorics, numerical mathematics, calculus, and more.[13]
- SciPy,[14][15][16] a large BSD-licensed library of scientific tools. De facto standard for scientific computations in Python.
- ScientificPython, a library with a different set of scientific tools
- SymPy, a library based on New BSD license for symbolic computation. Features of Sympy range from basic symbolic arithmetic to calculus, algebra, discrete mathematics and quantum physics.
Additional development packages
edit- Beautiful Soup – package for parsing HTML and XML documents.
- Cheetah – Python-powered template engine and code-generation tool.
- Construct – python library for the declarative construction and deconstruction of data structures.
- Genshi – template engine for XML-based vocabularies.
- IPython – development shell both written in and designed for Python.
- Jinja – Python-powered template engine, inspired by Django's template engine.
- Kid – simple template engine for XML-based vocabularies.
- Meson build system – software tool for automating the building (compiling) of software.
- mod_wsgi – module that provides a WSGI compliant interface for hosting Python based web applications with the Apache web server.
- PyObjC – Python to Objective-C bridge that allows writing OS X software in Python.
- Robot Framework – generic test automation framework for acceptance testing and acceptance test-driven development (ATDD).
- Setuptools – package development process library designed to facilitate packaging Python projects by enhancing the Python distutils (distribution utilities) standard library.
- Sphinx – which converts reStructuredText files into HTML websites and other formats including PDF, EPub and Man pages.
- SQLAlchemy – database backend and ORM.
- SQLObject – an ORM for providing an object interface to a database.
- Storm – an ORM from Canonical.
- Twisted – a networking framework for Python.
- VPython – the Python programming language plus a 3D graphics module called Visual.
Embedded as a scripting language
editPython is, or can be used as the scripting language in these notable software products:
- Abaqus (Finite Element Software)
- ADvantage Framework
- Amarok
- ArcGIS – a prominent GIS platform, allows extensive modelling using Python.
- Autodesk Maya – a professional 3D modeler allows Python scripting as an alternative to MEL as of version 8.5.
- Autodesk MotionBuilder
- Autodesk Softimage (formerly Softimage|XSI)
- BioNumerics – a bioinformatics software suite for the management, storage and (statistical) analysis of all types of biological data.
- Blender
- Boxee – a cross-platform home theater PC software.
- Cinema 4D
- Civilization IV has the map editor supporting Python.[17]
- Corel Paint Shop Pro
- Claws Mail with Python plugin
- DSHub
- ERDAS Imagine
- FL Studio – a Digital audio workstation, uses Python to support MIDI Controller integration, as well as scripting within its piano roll and Edison audio editor.
- FreeCAD
- gedit
- GIMP
- GNAT – The GNAT programming chain tool (Ada language implementation in GNU gcc), as a GNATcoll reusable components for the applications (with or without PyGTK) and as a scripting language for the commands in the GPS programming environment.
- Houdini highly evolved 3D animation package, fully extensible using python.
- Inkscape – a free vector graphics editor.
- Krita – a free raster graphics editor for digital painting.
- MeVisLab – a medical image processing and visualization software, uses Python for network scripting, macro modules, and application building.
- Modo
- Minecraft: Pi Edition (game).[18]
- MSC.Software's CAE packages: Adams, Mentat, SimXpert.
- MySQL Workbench – a visual database design tool.
- Nuke (compositing for visual effects)
- OriginPro – a commercial graphic and analysis software, provides Python environment for access.
- ParaView, an opensource scientific visualization software
- Poser – a 3D rendering and animation computer program that uses for scripting a special dialect of Python, called PoserPython.
- PTV AG products for traffic and transportation analysis, including PTV VISSIM.
- PyMOL – a popular molecular viewer that embeds Python for scripting and integration.
- OriginPro – a commercial graphing and analysis software, provides a Python environment for both embedded and external access.
- QGIS uses Python for scripting and plugin-development.
- Rhinoceros 3D version 5.0[19] and its visual-scripting language Grasshopper uses IronPython.[20]
- Rhythmbox
- Scribus
- 3DSlicer – a medical image visualisation and analysis software. Python is available for algorithm implementation, analysis pipelines, and GUI creation.
- SPSS statistical software – SPSS Programmability Extension allows users to extend the SPSS command syntax language with Python.
- SublimeText
- Totem – a media player for the GNOME desktop environment.
- Vim
- VisIt
- WeeChat – a console IRC client.
Commercial uses
edit- CCP Games uses Stackless Python in both its server-side and client-side applications for its MMO Eve Online.[21]
- Instagram's backend is written in Python.[22]
- NASA is using Python to implement a CAD/CAE/PDM repository and model management, integration, and transformation system which will be the core infrastructure for its next-generation collaborative engineering environment.[23][non-primary source needed] It is also the development language for OpenMDAO, a framework developed by NASA for solving multidisciplinary design optimization problems.
- "Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python."[24]
- Reddit was originally written in Common Lisp, but was rewritten in Python in 2005.[25]
- Yahoo! Groups uses Python "to maintain its discussion groups".[citation needed]
- YouTube uses Python "to produce maintainable features in record times, with a minimum of developers".[26]
- Enthought uses Python as the main language for many custom applications in Geophysics, Financial applications, Astrophysics, simulations for consumer product companies.
Python implementations
editImplementations of Python include:[27]
- CLPython – Implementation, written in Common Lisp.
- CPython – The reference implementation, written in C11.[28] Some notable distributions include:
- ActivePython – Distribution with more than 300 included packages.[29]
- Intel Distribution for Python – High performance distribution with conda and pip package managers.[30]
- PSF Python – Reference distribution that includes only selected standard libraries[31]
- Cython – programming language to simplify writing C and C++ extension modules for the CPython Python runtime.
- IronPython – Python for CLI platforms (including .NET and Mono).
- Jython – Python for Java platforms.
- MicroPython – Python 3 implementation for micro-controller platforms.
- Nuitka – a source-to-source compiler which compiles Python code to C/C++ executables, or source code.
- Numba – NumPy aware LLVM-based JIT compiler.
- PyPy – Python (originally) coded in Python, used with RPython, a restricted subset of Python that is amenable to static analysis and thus a JIT.
- Shed Skin – a source-to-source compiler from Python to C++.
Historic Python implementations include:
- Parrot – Virtual machine being developed mainly as the runtime for Raku, and intended to support dynamic languages like Python, Ruby, Tcl, etc.
- Psyco – specialized JIT compiler project that has mostly been eclipsed by PyPy.
- Pyrex – Python-like Python module development project that has mostly been eclipsed by Cython.
- Python for S60 – CPython port to the S60 platform.
- Stackless Python – CPython with coroutines.
- Unladen Swallow – performance-orientated implementation based on CPython which natively executed its bytecode via an LLVM-based JIT compiler. Funded by Google, stopped circa 2011.
See also
edit- List of open-source code libraries
- List of C++ software and tools
- List of C# software
- List of C software and tools
- List of Java frameworks
- List of JavaScript libraries and Comparison of JavaScript-based web frameworks
- List of Perl software and tools
- List of Ruby software and tools
- List of Visual Basic .NET software and tools
- Outline of the Python programming language
References
edit- ^ "Python Programming in Emacs". September 2017.
- ^ "Use Vim as a Python IDE | SpaceVim".
- ^ "pip documentation v25.2".
- ^ "OrganizationsUsingPython - Python Wiki".
- ^ "OrganizationsUsingPython - Python Wiki".
- ^ Mine, Mark R.; Shochet, Joe; Hughston, Roger (2003). "Building a massively multiplayer game for the million". Computers in Entertainment. 1: 1–20. doi:10.1145/950566.950589. S2CID 13977231.
- ^ "Toontown 2013 Source". GitHub. 17 November 2021.
- ^ "SpongeBob SquarePants: Revenge of the Flying Dutchman .DGC - ZenHAX". zenhax.com. Retrieved 2022-09-13.
- ^ "TXT · Jellonator/chum-world Wiki". GitHub. Retrieved 2022-09-13.
- ^ "The Sims 4 Creator's Camp: Modding Masterclass". Sims VIP. 4 August 2014. Retrieved 17 March 2018.
- ^ "Vampire: The Masquerade – Bloodlines – Mod Developer Guide – PC – By rezzzman – GameFAQs". gamefaqs.gamespot.com. Retrieved 2020-09-11.
- ^ "This is GameDev, baby! Interview with developers of World of Tanks – HackMag". hackmag.com.
- ^ Zimmermann, P., Casamayou, A., Cohen, N., Connan, G., Dumont, T., Fousse, L., ... & Bray, E. (2018). Computational Mathematics with SageMath. SIAM.
- ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
- ^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
- ^ Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
- ^ Kosak, Dave 'Fargo' (27 October 2005). "GameSpy: Civilization IV". GameSpy. pp. 1–3. 662218. Archived from the original on 6 December 2013. Retrieved 24 October 2009.
- ^ O'Hanlon, Martin (2020-09-04), martinohanlon/mcpi, retrieved 2020-09-11
- ^ "What is Rhino.Python?". developer.rhino3d.com.
- ^ "What is Rhino.Python?". developer.rhino3d.com. Retrieved 2021-04-15.
- ^ "EVE Online | Frequently Asked Questions". EVE Online. 2008-07-05. Archived from the original on 2009-02-22.
- ^ McCracken, Harry (June 23, 2015). "Do The Simple Thing First: The Engineering Behind Instagram". Fast Company.
- ^ "NASA Open Source Software". code.nasa.gov. Retrieved 2020-10-26.
- ^ Quotes about Python Peter Norvig, director of search quality at Google, Inc.
- ^ "on lisp". Upvoted. Retrieved 2018-12-05.
- ^ Quotes about Python Cuong Do, Software Architect, YouTube.com.
- ^ "PythonImplementations". Python Wiki. Python Software Foundation. Retrieved 2017-12-14.
- ^ "What's New In Python 3.11 — Python 3.11.0rc1 documentation". docs.python.org. Retrieved 2022-08-15.
- ^ "ActivePython". ActiveState.com. ActiveState Software. Retrieved 2017-12-14.
- ^ "Intel Distribution for Python". Intel Software. Intel. Retrieved 2017-12-14.
- ^ "Download Python". Python.org. Python Software Foundation. Retrieved 2017-12-14.
External links
edit- Python Package Index (formerly the Python Cheese Shop) is the official directory of Python software libraries and modules
- Useful Modules in the Python.org wiki
- Organizations Using Python – a list of projects that make use of Python
- Python.org editors – Multi-platform table of various Python editors