| Size: 5948 Comment:  | Size: 5937 Comment: Update `Lunatic Python` link to author's (Gustavo Niemeyer) page | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 85: | Line 85: | 
| * [[http://moin.conectiva.com.br/LunaticPython|LunaticPython]] - a two-way bridge between Python and Lua. | * [[http://labix.org/lunatic-python|LunaticPython]] - a two-way bridge between Python and Lua. | 
Contents
[Hint: The idea is to create pages for the stuff, not just link it.]
C/C++
There a various tools which make it easier to bridge the gap between Python and C/C++:
- SWIG - generate extension module from your .h files 
- boost.python - write (tiny) C++ class to wrap your classes in an extension module 
- Pyrex - write your extension module on Python   
- weave - include C code lines in Python program 
- SIP - similar to SWIG but specialised for Python and C++. Used to create PyQt, the Qt API wrapper library 
- ctypes is a Python module allowing to create and manipulate C data types in Python. These can then be passed to C-functions loaded from dynamic link libraries. 
- elmer - compile and run python code from C, as if it was written in C 
- pwig is a SWIG extension for writting new language modules in Python. 
- PicklingTools is a collection of libraries for exchanging Python Dictionaries between C++ and Python. 
- PyBindGen Python bindings code generator for pure C or C++ APIs. The generator is written in Python and has low complexity. The generated code is lean, efficient, and highly readable. 
Articles
- Embedding Python in Multi-Threaded C/C++ Applications in LinuxJournal 
- Building Hybrid Systems with Boost.Python in C/C++ User Journal 
- Integrating Python, C and C++, presented at the ACCU conference by Duncan Booth, and his conference slides 
Related
Fortran
- F2PY - Fortran to Python Interface Generator (http://cens.ioc.ee/projects/f2py2e/) 
- PyFort - The Python-Fortran connection tool (http://pyfortran.sourceforge.net/) 
Lisp
- CLPython - Python implemented in Common Lisp 
- Lython (archived page) - Lisp front-end for Python 
- Pymacs - integration of Python with Emacs Lisp 
Prolog
- PyLog (actually two different products) 
- prolog a simple interface to SWI-Prolog 
- bedevere - Python wrapper to GNU Prolog http://bedevere.sourceforge.net/ 
- pwig includes examples of wrapping Python for SWI-Prolog. 
- pyswip is a ctypes based module that enables querying SWI-Prolog. 
See also http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=Python+prolog
Java
C#/.NET
- Python for .NET is a near-seamless integration of the CPython runtime with the .NET Common Language Runtime (CLR). 
- IronPython is an implementation of Python for .net, which allows you to import .net class libraries seamlessly in Python. 
Perl
See http://www.faqts.com/knowledge_base/view.phtml/aid/17202/fid/1102
- PyPerl http://aspn.activestate.com/ASPN/CodeDoc/pyperl/perlmodule.html 
- PyPerlish - Perl idioms in Python 
For converting/porting Perl code to Python the tool 'Bridgekeeper' http://www.crazy-compilers.com/bridgekeeper/ may be handy.
PHP
- PiP (Python in PHP) http://www.csh.rit.edu/~jon/projects/pip/ 
- PHP "Serialize" in Python http://hurring.com/scott/code/python/serialize/ 
R
Objective-C
Tcl
- elmer - compile and run python code from Tcl, as if it was written in Tcl 
- TclPython - a Python package for Tcl allows execution of Python (version 2.2 or above) code from a Tcl interpreter. 
- Tcl and other languages - Tcl's equivalent of this page. 
Lua
- LunaticPython - a two-way bridge between Python and Lua. 
- Lux - a mutant Lua emphasizing interoperation with Python, Perl, etc. 
OCaml
- Pycaml - write Python extension modules in OCaml (instead of C), and use Python code and native libraries from OCaml programs. 
Eiffel and Haskell
- Eiffel/Haskell http://epolyglot.sourceforge.net/ (last updated 2001) 
- PythonVsHaskell has a section "Using both Python & Haskell with ctypes". 
Other (applications)
- LotusNotes http://www.dominopower.com/issuesprint/issue200008/command.html 
- CorbaPython: for a generic solution to language integration 
to name a few. There are much more...
Other (standards and protocols)
- XMLRPC and SOAP
- Yaml: http://www.yaml.org 
See also
Thinki: UsingPythonWithOtherLanguages
