# Python

* **Web Development**: [Django](http://www.djangoproject.com/), [Pyramid](http://www.pylonsproject.org/), [Bottle](http://bottlepy.org/), [Tornado](http://tornadoweb.org/), [Flask](http://flask.pocoo.org/), [web2py](http://www.web2py.com/)
* **GUI Development**: [tkInter](http://wiki.python.org/moin/TkInter), [PyGObject](https://wiki.gnome.org/Projects/PyGObject), [PyQt](http://www.riverbankcomputing.co.uk/software/pyqt/intro), [PySide](https://wiki.qt.io/PySide), [Kivy](https://kivy.org/), [wxPython](http://www.wxpython.org/)
* **Scientific and Numeric**: [SciPy](http://www.scipy.org/), [Pandas](http://pandas.pydata.org/), [IPython](http://ipython.org/)
* **Software Development**: [Buildbot](http://buildbot.net/), [Trac](http://trac.edgewall.org/), [Roundup](http://roundup.sourceforge.net/)
* **System Administration**: [Ansible](http://www.ansible.com/), [Salt](http://www.saltstack.com/), [OpenStack](https://www.openstack.org/)

## Applications for Python

Python is used in many application domains. Here's a sampling.

* The [Python Package Index](http://pypi.python.org/pypi) lists thousands of third party modules for Python.

## Web and Internet Development

Python offers many choices for [web development](http://wiki.python.org/moin/WebProgramming):

* Frameworks such as [Django](http://www.djangoproject.com/) and [Pyramid](http://www.pylonsproject.org/).
* Micro-frameworks such as [Flask](http://flask.pocoo.org/) and [Bottle](http://bottlepy.org/).
* Advanced content management systems such as [Plone](http://www.plone.org/) and [django CMS](https://www.django-cms.org/).

Python's standard library supports many Internet protocols:

* [HTML and XML](http://docs.python.org/library/markup)
* [JSON](http://docs.python.org/library/json.html)
* [E-mail processing](http://docs.python.org/library/email).
* Support for [FTP](http://docs.python.org/library/ftplib.html), [IMAP](http://docs.python.org/2/library/imaplib.html), and other [Internet protocols](http://docs.python.org/library/internet).
* Easy-to-use [socket interface](http://docs.python.org/howto/sockets.html).

And the Package Index has yet more libraries:

* [Requests](https://pypi.python.org/pypi/requests/), a powerful HTTP client library.
* [BeautifulSoup](http://www.crummy.com/software/BeautifulSoup/), an HTML parser that can handle all sorts of oddball HTML.
* [Feedparser](https://pypi.python.org/pypi/feedparser) for parsing RSS/Atom feeds.
* [Paramiko](https://pypi.python.org/pypi/paramiko/), implementing the SSH2 protocol.
* [Twisted Python](http://twistedmatrix.com/), a framework for asynchronous network programming.

## Scientific and Numeric

Python is widely used in [scientific and numeric](http://wiki.python.org/moin/NumericAndScientific) computing:

* [SciPy](http://scipy.org/) is a collection of packages for mathematics, science, and engineering.
* [Pandas](http://pandas.pydata.org/) is a data analysis and modeling library.
* [IPython](http://ipython.org/) is a powerful interactive shell that features easy editing and recording of a work session, and supports visualizations and parallel computing.
* The [Software Carpentry Course](http://software-carpentry.org/) teaches basic skills for scientific computing, running bootcamps and providing open-access teaching materials.

## Education

Python is a superb language for teaching programming, both at the introductory level and in more advanced courses.

* Books such as [How to Think Like a Computer Scientist](http://www.openbookproject.net/thinkcs/python/english2e/), [Python Programming: An Introduction to Computer Science](http://mcsp.wartburg.edu/zelle/python/), and [Practical Programming](http://pragprog.com/book/gwpy2/practical-programming).
* The [Education Special Interest Group](https://www.python.org/community/sigs/current/edu-sig) is a good place to discuss teaching issues.

## Desktop GUIs

The [Tk](http://wiki.python.org/moin/TkInter) GUI library is included with most binary distributions of Python.

Some toolkits that are usable on several platforms are available separately:

* [wxWidgets](http://www.wxpython.org/)
* [Kivy](http://kivy.org/), for writing multitouch applications.
* Qt via [pyqt](http://www.riverbankcomputing.co.uk/software/pyqt/intro) or [pyside](http://www.pyside.org/)

Platform-specific toolkits are also available:

* [GTK+](http://www.pygtk.org/)
* Microsoft Foundation Classes through the [win32 extensions](http://sourceforge.net/projects/pywin32/)

## Software Development

Python is often used as a support language for software developers, for build control and management, testing, and in many other ways.

* [SCons](http://www.scons.org/) for build control.
* [Buildbot](http://buildbot.sourceforge.net/) and [Apache Gump](http://gump.apache.org/) for automated continuous compilation and testing.
* [Roundup](http://roundup.sourceforge.net/) or [Trac](http://www.edgewall.com/trac/) for bug tracking and project management.

## Business Applications

Python is also used to build ERP and e-commerce systems:

* [Odoo](https://www.odoo.com/) is an all-in-one management software that offers a range of business applications that form a complete suite of enterprise management applications.
* [Tryton](http://www.tryton.org/) is a three-tier high-level general purpose application platform.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aftree.gitbook.io/site/bian-cheng-yu-yan/python.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
