Revision 1 as of 2002-07-15 17:47:58
|Deletions are marked like this.||Additions are marked like this.|
|Line 1:||Line 1:|
The weave package allows the inclusion of C/C++ within Python code. It is part of the larger SciPy package (http://www.scipy.org), but is also available as a stand alone package (http://scipy.org/site_content/weave) so that more people can try it out.
Including C/C++ code within Python offers both another level of optimization to those who need it, and an easy way to modify and extend an supported extension libraries such as wxPython and hopefully VTK soon. Inlining C/C++ code within Python generally results in speed ups of 1.5x to 30x speed-up over algorithms written in pure Python (However, it is also possible to slow things down...). Generally algorithms that require a large number of calls to the Python API don't benefit as much from the conversion to C/C++ as algorithms that have inner loops completely convertable to C.
There are three basic ways to use weave. The weave.inline() function executes C code directly within Python, and weave.blitz() translates Python Numeric expression to C++ for fast execution. blitz() was the original functionality for which weave was built. For those interested in building extension libraries, the ext_tools module provides classes for building extension modules within Python.