Python is an interpreted scripting language available on a wide variety of platforms, including Linux, Mac OS X, and Microsoft Windows.
Dive Into Python is considered to be one of the best free introductions available, although it was last updated in 2004. Nevertheless, It provides good coverage on all the language basics, and common tasks such as web requests and file operations. For more advanced topics, Text Processing In Python is an excellent reference and tutorial.
Other free ebooks and online sources include:
- The Python Tutorial at docs.python.org
- Non-Programmer's Tutorial for Python 2.6 at Wikibooks
- Think Python: How to Think Like a Computer Scientist by Allen B. Downey (free PDF & HTML versions).
- Learn Python The Hard Way by Zed Shaw (free HTML verison)
- Building Skills in Python by Steven F. Lott (also available as a PDF)
Once you've learned the basics of the language, Code Like a Pythonista: Idiomatic Python is a tutorial that will help you acclimate to specific aspects of Python that differentiate it from other programming languages.
Free Online Courses
- Google's Python Class
- Learnstreet's Free Python Courses and Videos
- Python at Codecademy
- A Gentle Introduction to Programming Using Python at MIT
- Firebox Training's Free Python course video tutorial blog
Python in Mozilla-based applications
Starting with Mozilla 1.9, Python DOM (PyDOM) bindings are implemented. This lets chrome XUL and HTML authors use Python in their <script> tags (again, not in the official Firefox/Thunderbird builds).
Python-based tools for Mozilla development
Python is used by Mozillians for tools that do various things with Mozilla apps and infrastructure. It would be useful to have a document on Python Environment and Tools for Mozilla.
Tools are listed here: http://k0s.org/toolbox/?language=python
Use of Python at Mozilla
Mozilla has considerable infrastructure based on python:
- django for webdev
- buildbot for continuous integration
- many of our test harnesses
- mozbase : building blocks for test harnesses, tools, and other infrastructure
Python in Mozilla-Central
[Stub: see https://bugzilla.mozilla.org/show_bug.cgi?id=835553]
Much of the build system, the testing system, and other tools and infrastructure in mozilla-central are python.
python/contains common python code including third party packages mirrored from (e.g.) pypi.python.org
testing/mozbase/contains a mirror of
Mozbasepackages as used in mozilla-central
A virtualenv is made in the
objdir on invocation of the build at
$OBJDIR/_virtualenv . To add packages to the virtualenv, edit build/virtualenv_packages.txt . These are installed on build via build/virtualenv/populate_virtualenv.py .
Python uses setup.py files to record metadata and installation instructions for python packages. Running (e.g.)
python setup.py install will install the package, making its modules available on python's import path. For python 2.x, several distribution/installation modules exist.
distutils is the only distribution package available in python's standard library.
distutils has ability to upload to the python package index and to install python packages. See the Python documentation on
distutils for details.
distutils is built in to python's standard library, setuptools is a third-party ad hoc standard for packaging and distribution. It is mostly compatible with
distutils, but importantly adds the ability for packages to include dependencies that are installed as prerequisites at the time
setup.py is invoked as well as the ability to install python packages in development mode. This allows the files to be edited in place via .pth files which is handy if you are actively working on a project.
setuptools also provides an
easy_install script for installing packages and their dependencies through the web from PyPI. For instance, in order to install the PyYAML package, just run
setuptools is not included with python, you will need to install it in order to use it. You may install it from the
setuptools PyPI page by downloading, extracting, and running
python setup.py install. Or you can use the
ez_setup.py script. You can download and run it with python (with root/Administrator privileges), or if you're in a bash shell, you can run
sudo python <(curl http://peak.telecommunity.com/dist/ez_setup.py)
setuptools is also provided with instances of virtualenv, so if you use virtualenvs for developing you may not need to install
setuptools globally. distribute is a fork of setuptools written by Mozilla's own Tarek Ziade. It is compatible with
setuptools and fixes a few bugs there.
The Python Package Index (PyPI) is the standard distribution point for python packages. If you need some functionality in python, it is a good place to look!
See also: http://k0s.org/portfolio/packaging.html