Scripting Resources

Python

Documentation

Python Documentation
Python Library Reference: Index
Python Quick Reference (v2.6)
Python FAQ
Python 2.x to 3.x conversion
IPython Documentation
Python Regular Expression HOWTO
NumPy and SciPy reference guides
NumPy user guide
New NumPy tutorial
NumPy tutorial
NumPy example list
Numpy Medkit (highly recommended)
Matlab to NumPy transition
NumPy for Matlab/IDL/R users
SciPy tutorial
SciPy online course
Python and scientific computing course
NumPy and SciPy cookbook
Why Python for scientific computing?
Introduction to IDLE
Matplotlib documentation
Introduction to Tkinter
Tkinter in Python Library Reference
Tkinter Quick Reference
Pmw documentation
PmwContribD documentation
Tkinter Life Preserver
Pmw.Blt documentation
Sphinx
Epydoc
Pydoc tutorial
HappyDoc
F2PY(part of NumPy)
How to create Python packages
Python Imaging Library (PIL)
pymat: Python-Matlab interface
Advanced NumPy tutorial/
Advanced NumPy course
PyPar
PyPar tutorial
Style guide for Python Code
Style guide for docstrings
py4cs package

Source code

PythonBasic Python source
ActivePythonActiveState's Python distribution (for Linux and Windows)
Enthought PythonRecommended Python for Windows
Numerical Python project pageFast array computing in Python
MatplotlibCurve plotting with Matlab syntax
ScientificPython package More numerical extensions to Python
Gnuplot interfaceDirect visualization of Python data with Gnuplot
PyIDLPython interface to IDL
PygracePython interface to the Grace plotting tool
VtkVisualization package w/Python interface
MayaViHigh-level GUI and scripting interface to Vtk
PyOpenGLAdvanced (low level) graphics
PyXTeX-like Python interface to PostScript drawing
disipylPython interface to the DISLIN curve/surface plotting package
PIL: Python Imaging LibraryImage processing tools
SciPyComprehensive scientific computing support
LAPACKNeeded for SciPy
ATLASNeeded for SciPy
MatPyLinear Algebra Supplement to NumPy
Python for Windows extensionspywin* modules with MFC wrappers, COM support, etc.
Pmw Python megawidgets
IPython Interactive Python shell
BLTBLT extension to Tk
PmwContribD Additional Pmw widgets
PyMatPython interface to Matlab (use CVS version!)
DocutilsUtilities for writing documents, manuals, etc.
Sphinx
EpydocTool for documenting Python source code
HappyDocTool for documenting Python source code
UnumUnit conversion
Boost.PythonTool for writing extensions modules in C++
SIP Tool for writing extensions modules in C++
ValgrindTool for debugging extensions modules
PyParParallel Python programming
pyperlCall Perl from Python
TableIOC code for reading tables in files
Cheve GUIConfigurable look and feel for Python/Tkinter GUI applications
PyXML XML processing tools
GnosisHigher-level XML processing tools

Useful links

Python home page
PyPI: Python package index (3rd party modules)
Vaults of Parnassus (3rd party Python modules)
Python Learning Foundation (tutorials, overviews, etc.)
Python online cookbook (lots of useful recipes)
NumPy and SciPy documentation (overview)
IPython (enhanced interactive Python shell)
Python GUI programming overview
Another Python GUI programming overview
Pmw home page
PAGE (a Tk GUI generator)
Urwid (GUI in plain text windows)
Twilight GUI (wrapper for PyQt, PyGtk, wxPython, Tkinter)
Generation of Python GUIs with Glade (a PyGtk GUI generator)
Another introduction to Glade
Glade-2 tutorial
PyGtk tutorial
PyQt/QtDesigner tutorial
PyQt tutorial
wxPython home page (widespread GUI library)
Wax (Tkinter-like simple-to-use layer on top of wxPython)
wxGlade (GUI designer for wxPython)
PythonCard home page (simplified wxPython interface)
Py (many useful tools, part of wxPython)
SciPy home page (tools for scientific computing with Python)
Jython home page
ActiveState home page
Tcl/Tk home page
PyLint (source code style checker)
Python IDEs (editors, graphical development environments for Python)
pexpect (makes interactive applications scriptable)
which.py (advanced application finder on Unix and Windows)
Various tutorials for Python tools (Penzilla.net)
Thinking in Python (design patterns and advanced programming)
Advanced Python Programming tutorial by D. Beazley
Dive Into Python (on-line Python book)
Data Structures and Algorithms ... (on-line Python book)
PythonInScience (overview of scientific Python applications and tools)
PyTables (Python interface to HDF5)
pynci (Python interface to netCDF)
Scientific.IO.NetCDF (Python interface to netCDF)
pyparsing (simple-to-use text parser)
PLY (lex/yacc-like parser in Python)
Kodos (visual debugging of regular expressions)
Gnosis software review (lots of XML/Python info by D. Merz)
Simple CGI script for uploading files (over the Internet)
More advanced CGI script for uploading files (over the Internet)
Cython (Kind of Python to C compiler)
Psyco (just-in-time Python to C compiler)
Instant (for inlining C/C++ code in Python)
Weave (for inlining C/C++ code in Python)
PyInline (for inlining C code in Python)
Python optimization tips
van Rossum: Loop optimizations in Python
Montanaro: Optimization of Python scripts
Pygments (HTMLize Python code)
pybibliographer (handles bibliographic databases)
SAGE (symbolic and numerical math software in Python)
SymPy (symbolic mathematics in Python, as a pure Python module)
Swiginac (symbolic mathematics in Python, based on GiNaC)
mlabwrap (Matlab commands directly available as Python functions)
Various random number generators (C extension)
VLC (recommended movie player for MPEG, AVI, ...)
cgkit (Python Computer Graphics Kit)
VPython (easy-to-use 3D visualization)
Visual Python (scripting front end to GNOME and KDE)
ChomboVis (high-level Python-based GUI interface to Vtk)
Pivy (interface to the Coin 3D graphics library (an OpenInventor clone))
PyQwt (plotting widgets for PyGtk GUIs)
Install procedures and cx_Freeze (distributing scripts as compiled executables)
Embedding Python in C/C++ code (intro and examples)
Tools for implementing decorators
scipy.org/Topical_Software (list of Python-based scientific software)
FiPy (tools for finite volume programming)
PyDSTool (simulation of dynamical systems)
PySparse (sparse matrices, solvers, eigenvalues)
Distribute (enhancements to Distutils)
Distutils for NumPy, SciPy, F2PY, etc.
Moveable Python (easy distribution of your complete Python environment)
Python pitfalls (strange and dangerous things in Python)
Python gotchas (more Python pitfalls)
reStructuredText intro (powerful documentation format)
preprocess (C-like preprocessor for Python code)
EmPy (system for processing Python as markup embedded in text)
PyReport (system for nice printout of Python code and program output)
Python for teaching programming in high schools

Other Tools

Perl

Documentation

Perl FAQ
Man pages: use perldoc (on the command line)

Source code

Perl modules
Basic Perl Stable production release
Perl/TkPerl's Tk extension
ActivePerlActiveState's Perl distribution (recommended Perl for Windows)
CPAN

Useful links

Perl documentation (searchable)
Perl home page
CPAN
Perl mongsters
ActiveState home page
A Perl reference with search facilities
A general resource for online Perl documentation
The World Wide Web Security FAQ
The Idiot's Guide to Solving Perl CGI Problems
Perl CGI Programming FAQ
Web Forms Tutorial
Perl debugging
Perl/Tk introduction
Perl debugger with GUI
CDchart and its Perl interface (graph/chart plotting for CGI scripts)
Why Not Translate Perl to C? (on the efficiency of Perl vs. C)

Debian Packages

Many people, including the author, find it very convenient to download software from the Debian package pages: http://www.debian.org/Packages/stable/ or (preferably) http://www.debian.org/Packages/unstable/. In the unstable Debian distribution you can normally find the latest version of a specific package. (The word unstable is in this context - of downloading source codes - quite misleading.)

At the Debian sites you can find all sorts of software, with precise information on which versions of other packages that the software depends on. If you are running a Debian Linux system, you can download precompiled packages and install them with a single command. However, the description in this appendix is based on compiling the source code, which is a more general approach. The Debian packages are also distributed as tar files with the complete source code; just focus at the ``Source Code'' in small fonts under the ``Go To Download'' button.