From charlesreid1

Python is a handy language whose syntax is easy to learn. Python is a scripting language that is similar in syntax to Matlab, but has the power of object-oriented languages such as C++. Python is also extensible, and many libraries and packages are available for nearly every function imaginable. For example, Numpy and Scipy provide tools often used in scientific programming, such as matrix and vector objects, not inherently provided by Python.

Installing Python

Mac

Mac comes with a version of Python built-in, but this version of Python is 2.5, at least 2 major versions behind the latest. It is recommended that you install the latest version of Python 2.x (stick with 2.x, since Python 3.x makes some very major changes and probably won't work as expected).

Python versions can be obtained here: http://www.python.org/download/releases/

Pick the version you want, and when you click on it, you'll be offered downloads of the source code and binaries for several platforms.

Location of Installed Python

Mac OS X comes with a built-in version of Python, located at

/usr/bin/python

This is the wrong version of python, as it's a system version. It's best to just leave this version alone, as the system still uses it to do different things.

Install a version of Python from the above Python.org web site.

Using the Python.org version of Python will install the Python executable to the following location:

/Library/Frameworks/Python.framework

There is a "Python" binary in this folder which always points to the latest version of Python. Alternatively, you can find specific versions of Python at

/Library/Frameworks/Python.framework/Versions/2.7/python

There is also a "Current" version that will point to the most up-to-date version of Python.

Once you've installed the Python.org version of Python, you will need to add these locations to your path, in order to use this version of Python. This can be done with your Dot files (such as .profile or .bash_profile).

(Alternatively, the Python installer may automatically add this to your path by modifying .bash_profile itself).

Linux

You can use your package manager to install a binary Python, or you can download the source code from here: http://www.python.org/download/

For instructions related to building software from source, go here: Compiling Software


Windows

You can download the latest version of Python for Windows from this page: http://www.python.org/download/

It is highly recommended that you install Python in the root of your C drive: when it asks you for an install location, specify C:\Python27.

You can then add folder locations to your $PYTHONPATH variable by editing the Windows environment variables. On Windows XP, right-click on My Computer, click the "Advanced" tab, and click the "Environmental Variables" button. On Windows 7, right-click on Computer, click the "Advanced settings..." link on the left-hand side, and click the "Environmental Variables" button. Once you're there, you'll create a new user variable: variable name PYTHONPATH and variable value C:\Python27 (if you want to add other locations, separate them using a semicolon; don't delete any locations that are already there, just add locations).

Virtual Python: virtualenv

See the main article: Virtualenv

Python Settings

Python Path

Python uses modules, which are basically libraries of functions or code that can be downloaded and used. Some examples include Numpy and Scipy (described in further detail below, in the Py4Sci section. To import a module named foo, you would type (at the Python shell/interpreter):

>> import foo

When this is typed, Python looks in a couple of different locations for the module, contained in a file named foo.py. These locations are defined in an environmental variable called $PYTHONPATH. So basically, if you want to write your own module, or if you install a module that does not automatically update $PYTHONPATH (most modules will), you will need to modify $PYTHONPATH manually.

This variable is created with the same syntax as the system $PATH variable; that is, locations are separated by commas, and assuming the module foo.py is in /path/to/module, you can add to the existing value of $PYTHONPATH by putting this in your .profile file:

export $PYTHONPATH="${PYTHONPATH}:/path/to/module"

Documentation with Python

Documentation

epydoc creates some very nice, Doxygen-style documentation for Python code. The best part about it is that you don't have to do any work!

More information on creating documentation with Python: Python documentation

Formatting Code

http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Comments#Comments

Packages

General Instructions for Installing Packages

In most cases, you can either install the binary version (this is a simple double-click process), or you can install Python packages from source using a three-step process.

The first step is to build the package:

$ python ./setup.py build

The second step is to install the package. This is where you would specify a prefix if you don't want the package to be installed system-wide:

$ python ./setup.py install

or

$ python ./setup.py install --user

or

$ python ./setup.py install --prefix=/path/to/package

The third and final step is to add /path/to/package to your $PYTHONPATH variable. The location of the necessary Python stuff can be found by tacking on a lib/python2.7/site-packages/ to the end of /path/to/package.

So you would add the following path to your $PYTHONPATH variable:

export PYTHONPATH="/path/to/package/lib/python2.7/sitepackages:${PYTHONPATH}"

This would go in one of your Dot files, like .profile or .bashrc.

Py4Sci

The Py4Sci (Python 4 Science) suite consists of 4 Python extensions, which combine to provide a Matlab-like environment. These extensions are:

  • iPython - provides an enhanced Python shell
  • Numpy - an extension providing numerical routines for vector and matrix objects
  • Scipy - an extension providing MATLAB-like functionality (optimization, Fourier transforms, ODE solvers, etc.), typically used in conjunction with data types provided through the Numpy extension
  • Matplotlib - provides 2D plotting functionality to Python

While the official installation instructions provided by the Numpy and Scipy projects are helpful, they are minimal. I've got more installation instructions at the Py4Sci page.

Cantera

Cantera is a package that provides a Python interface for performing thermochecmial calculations. You can find information about installing Cantera at the Cantera page. For examples of how to use Cantera, including the Python interface, visit the Cantera Lecture page.

Buildbot

Buildbot is a program that can be used to run build tests of pieces of code. It's basically a fancy regression tester, and it's all written in Python. I've got plenty of details over at the Buildbot page.


Scrapy

Scrapy is a Python library for web scraping. You can use it to make spiders that will crawl through URLs, scrape content, and do stuff with it.

LibXML and LibXSLT

These are libraries for parsing and traversing XML and XSLT files, as well as importing/exporting and translation to other formats.


Importing from the Future

To force Python to do division the RIGHT way, import from the future:

from __future__ import division

print 2/3

http://mail.python.org/pipermail/tutor/2008-March/060886.html

Links

http://www.engineeringwithpython.com/