Python software

From Wikipedia, the free encyclopedia

The Python programming language is actively used by many people, both in industry and academia for a wide variety of purposes.

Contents

[edit] Educational uses

As of 2007, Python is becoming more popular for teaching computer programming. Its strengths for teaching include its syntactic simplicity, flexible typing, and interactive interpreter.

Python uses fewer symbols than languages like Java and C. For example blocks inside loops and IF statements are indicated by indentation rather than curly braces ({}), and the end of a line does not have to have a semicolon. Some beginning students often have trouble initially with memorizing where curly braces and semi-colons go. With Python, students can skip memorization of formal syntax and move on to more practical applications. Similarly, with Java and C++, variables types must be declared before being used. That is not needed in Python which allows students to develop programs much more quickly.

The interactive interpreter is an extremely valuable aid to learning and experimentation. Learning-by-doing is about trying things out and seeing what happens. The faster you can get results from your experiment, the faster that learning produces results. Using the interactive interpreter in place of a compiler can be helpful with initially learning the language or even quickly learning a new library.

[edit] Software using Python

  • ArcGIS, a prominent GIS platform, allows extensive modeling using Python
  • Battlefield 2, a first person shooter that uses Python for its configuration scripts
  • Bazaar, a free distributed revision control system
  • The original BitTorrent client, along with several derivatives
  • Blender, a popular open source 3D modeler with a Python scripting engine
  • SAGE (sagemath) combines more than 20 main opensource math packages and provides easy to use web interface with the help of python
  • Boa Constructor, a cross-platform IDE for Python development
  • Chandler, a personal information manager including calendar, email, tasks and notes support that is currently under development
  • CherryPy, an object-oriented web application server and framework
  • Civilization IV videogame and the newly released computer game uses boost.python to allow Python to access many parts of the game (including the style and content of all interface screens)
  • CSpace, a secure, decentralized, user-to-user communication platform
  • Deluge, a bittorrent client for GNOME
  • Django, an MVC (model, view, controller) web framework
  • Eric, an IDE for Python and Ruby
  • EVE Online, a sci-fi massively multiplayer online roleplaying game
  • Exaile, an open source audio player
  • GRAMPS, an open source genealogy software
  • Mailman, one of the more popular packages for running email mailing lists
  • Juice, a popular podcast downloader
  • Listen, an open source media player
  • Maya, professional 3D modeler allows Python scripting as an alternative to MEL as of version 8.5
  • Mercurial a cross-platform, distributed source management tool
  • Minions of Mirth, a MMORPG that uses Python for extensibility
  • MoinMoin, a popular wiki engine
  • Morpheus, file-sharing client/server software operated by the company StreamCast
  • MusicBrainz Picard, a cross-platform MusicBrainz tag editor
  • NanoICQ, pure Python ICQ client.
  • Nicotine, a PyGTK SoulSeek client.
  • OpenRPG, a virtual table on which to play Role Playing Games over the internet
  • Plone, a user-friendly and powerful open source Content Management System
  • Portage, the heart of Gentoo Linux. An advanced package management system based on the BSD-style ports system
  • Poser, a 3D rendering and animation software program, that uses for scripting a special dialect of Python, called PoserPython.
  • PyMOL, a popular molecular viewer that embeds Python for scripting and integration
  • Quake Army Knife, an environment for developing 3D maps for games based on the Quake engine
  • Quod Libet, an open source audio player.
  • Resolver One, a spreadsheet
  • Robot Arena 2: Design and Destroy, a robot combat game
  • SCons, a tool for building software
  • SePY, an ActionScript editor
  • Severance: Blade of Darkness, A 3d action-fantasy game by Rebel Act Studios.
  • Sipie, a command line player for online streaming of Sirius Satellite Radio stations
  • Solipsis, a system for massively shared virtual world
  • Sonata, a MPD client.
  • SPSS, Statistical analysis package. SPSS Programmability Extension allows users to extend the SPSS command syntax language with Python.
  • Stani's Python Editor (SPE), a cross-platform IDE for Python development
  • Stoq, a open source ERP and CRM
  • Trac, web-based bug/issue tracking database, wiki, and version control front-end
  • Vampire: The Masquerade – Bloodlines, a videogame, uses Python for game scripting
  • ViewVC, a web-based interface for browsing CVS and SVN repositories
  • Webware for Python a suite of programming tools for constructing web-based applications in Python.
  • Wing IDE, an IDE for Python
  • Yum, a package management utility for RPM-compatible Linux operating systems.
  • Zope, an application server, commonly used to build content management systems

[edit] Packages for Python

The Python Cheese Shop is the official directory of python packages.

  • matplotlib, an extension providing MATLAB-like plotting and mathematical functions
  • NumPy, a language extension that adds support for large and fast, multi-dimensional arrays and matrices
  • SciPy, a library of scientific and numerical routines
  • PyROOT, a library for scientific data reduction including histogram, develobed by cern
  • SimPy, a discrete-event simulation package;
  • BioPython, a Python molecular biology suite.
  • PyOpenGL, a package that allows 3D rendering using Python
  • Soya 3D, a high-level 3D game engine for Python
  • Pygame, python bindings for Simple DirectMedia Layer
  • Pyglet, a cross-platform windowing and multimedia library for Python
  • Python Imaging Library, a module for working with images
  • 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 have bindings too
  • wxPython, a port of wxWidgets and a cross-platform GUI library for Python
  • PyObjC, a Python-Objective C bridge that allows one to write Mac OS X software in Python
  • CherryPy, a Python-powered web framework
  • Django, another Python-powered web framework
  • Pylons, another Python-powered web framework
  • Traits, Package for Manifest Typing, Reactive Programming, and dynamic UIs.
  • Topsite Templating System, another Python-powered web framework
  • TurboGears, a web framework combining CherryPy, SQLObject, and Kid
  • Zope Object Database, a Python-specific object-oriented database
  • Cheetah, a Python-powered template engine and code-generation tool
  • mod_python, an Apache module allowing direct integration of Python scripts with the Apache web server
  • Quixote a framework for developing Web applications in Python
  • Twisted, a networking framework for Python
  • IPython, a powerful development shell both written in and designed for Python

See more recommended modules at Useful Modules in the Python.org wiki.

[edit] Embedded as a scripting language

Python is, or can be used as, the scripting language in these software products.

[edit] Commercial uses

  • Google uses Python for many tasks including the backends of web apps such as Google Groups, Gmail, and Google Maps, as well as for some of its search-engine internals.
  • 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.
  • Reddit was originally written in Common Lisp, but was rewritten in Python in 2005 [1].
  • Youtube uses Python "to produce maintainable features in record times, with a minimum of developers"[2]
  • Yahoogroups uses Python "to maintain its discussion groups"

[edit] Software directories

[edit] Python implementations

  • Python – The reference implementation, also known as CPython
  • Jython – Python coded in Java
  • IronPython – Python for .NET and Mono platforms
  • Stackless Python - Python with coroutines
  • Psyco - not an implementation, but JIT compiler for CPython
  • PyPy – Python coded in Python
  • Parrot – Virtual machine being developed mainly as the runtime for Perl 6, but with the intent to also support dynamic languages like Python, Ruby, Tcl, etc.

Can currently execute a subset of Python

  • Epy – Compiles Python code into working Javascript (for running in web browsers)
  • PyObjC