Old Python Page
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.
Contents
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