Differences between revisions 72 and 73
Revision 72 as of 2012-05-03 17:37:22
Size: 6787
Editor: 107-1-83-146-ip-static
Comment: updated URL to point to current Tcl Wiki instead of old inactive site.
Revision 73 as of 2012-08-16 15:35:31
Size: 7345
Editor: 91
Comment: wiki restore 2013-01-23
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Line 5: Line 6:
Line 6: Line 8:

Line 8: Line 12:
 * [[Pyrex]] - write your extension module on Python (!)
* [[Pyrex|Pyrex]] - write your extension module on Python (!)
 * [[http://cython.org/|Cython]] -- Cython -- an improved version of Pyrex
Line 12: Line 18:
 * [[elmer]] - compile and run python code from C, as if it was written in C  * [[elmer|elmer]] - compile and run python code from C, as if it was written in C
Line 14: Line 20:
 * [[weave]] - include C code lines in Python program  * [[weave|weave]] - include C code lines in Python program
Line 16: Line 22:

Line 17: Line 25:

Line 18: Line 28:
 * [[boost.python]] - expose C++ classes functions and objects to Python, and vice-versa, using just C++ compiler

* [[boost.python|boost.python]] - Expose C++ classes functions and objects to Python, and vice-versa, using just C++ compiler
 * [[https://github.com/orangeduck/PyAutoC|PyAutoC]] - Automatically wrap C functions and structs, using just C compiler.
Line 20: Line 33:
 * [[http://code.google.com/p/pybindgen/|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
 * [[http://developer.qt.nokia.com/wiki/Category:LanguageBindings::PySide::Shiboken|shiboken]] - Binding Generator used to create PySide Python bindings for Qt
 * [[SIP]] - similar to SWIG but specialised for Python and C++. Used to create PyQt, the [[Qt]] API wrapper library
 * [[http://www.swig.org/|SWIG]] - generate extension module from your .h files 
 * [[http://code.google.com/p/pybindgen/|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
 * [[http://developer.qt.nokia.com/wiki/Category:LanguageBindings::PySide::Shiboken|shiboken]] - Binding Generator used to create [[PySide|PySide]] Python bindings for Qt
 * [[SIP|SIP]] - similar to SWIG but specialised for Python and C++. Used to create [[PyQt|PyQt]], the [[Qt|Qt]] API wrapper library
 * [[http://www.swig.org/|SWIG]] - generate extension module from your .h files

Line 25: Line 40:
Line 26: Line 42:

Line 29: Line 47:

Line 30: Line 50:
Line 31: Line 52:
 * AppsWithPythonScripting

* [[AppsWithPythonScripting|AppsWithPythonScripting]]
Line 34: Line 58:
 * Python4Delphi - Python for Delphi is a set of free components that wrap up the Python Dll into Delphi. (http://code.google.com/p/python4delphi/)

* [[Python4Delphi|Python4Delphi]] - Python for Delphi is a set of free components that wrap up the Python Dll into Delphi. (http://code.google.com/p/python4delphi/)
Line 37: Line 64:
 * [[F2PY]] - Fortran to Python Interface Generator (http://cens.ioc.ee/projects/f2py2e/)
 * PyFort - The Python-Fortran connection tool (http://pyfortran.sourceforge.net/)


* [[F2PY|F2PY]] - Fortran to Python Interface Generator (http://cens.ioc.ee/projects/f2py2e/)
 * [[PyFort|PyFort]] - The Python-Fortran connection tool (http://pyfortran.sourceforge.net/)
Line 41: Line 71:
 * [[CLPython]] - Python implemented in Common Lisp

* [[CLPython|CLPython]] - Python implemented in Common Lisp
Line 45: Line 77:
Line 46: Line 79:
 * PyLog (actually two ''different'' products)

* [[PyLog|PyLog]] (actually two ''different'' products)
Line 52: Line 87:
See also [[http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=Python+prolog]]
See also http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=Python+prolog
Line 55: Line 92:
 * [[Jython]] - Python implemented in Java
 * [[JPype]] - Java for CPython
 * [[Jepp]] - Java embedded Python


* [[Jython|Jython]] - Python implemented in Java
 * [[JPype|JPype]] - Java for CPython
 * [[Jepp|Jepp]] - Java embedded Python
Line 60: Line 99:
Line 61: Line 101:

Line 65: Line 107:
Line 66: Line 109:

Line 67: Line 112:
 * PyPerl [[http://search.cpan.org/dist/pyperl/]]
 * [[http://search.cpan.org/search?query=Inline%3A%3APython&mode=all|Inline::Python]]
 * PyPerlish - Perl idioms in Python
Line 71: Line 113:
For converting/porting Perl code to Python the tool
'Bridgekeeper' [[http://www.crazy-compilers.com/bridgekeeper/]]
may be handy.

 * [[PyPerl|PyPerl]] http://search.cpan.org/dist/pyperl/
 * [[http://search.cpan.org/search?query=Inline::Python&mode=all|Inline::Python]]
 * [[PyPerlish|PyPerlish]] - Perl idioms in Python


For converting/porting Perl code to Python the tool 'Bridgekeeper' http://www.crazy-compilers.com/bridgekeeper/ may be handy.
Line 77: Line 124:
 * PiP (Python in PHP) [[http://www.csh.rit.edu/~jon/projects/pip/]]
 * PHP "Serialize" in Python [[http://hurring.com/scott/code/python/serialize/]]
   

* PiP (Python in PHP) http://www.csh.rit.edu/~jon/projects/pip/
 * PHP "Serialize" in Python http://hurring.com/scott/code/python/serialize/

Line 81: Line 130:
 * RPy [[http://rpy.sourceforge.net]]
 * RSPython [[http://www.omegahat.org/RSPython]]


* RPy http://rpy.sourceforge.net
 * RSPython http://www.omegahat.org/RSPython
Line 85: Line 137:

Line 87: Line 141:
Line 88: Line 143:
 * [[elmer]] - compile and run python code from Tcl, as if it was written in Tcl

* [[elmer|elmer]] - compile and run python code from Tcl, as if it was written in Tcl
Line 92: Line 149:
Line 93: Line 151:

Line 95: Line 155:
 * [[http://www.equi4.com/lux/|Lux]] - a mutant Lua emphasizing interoperation with Python, Perl, etc.   * [[http://www.equi4.com/lux/|Lux]] - a mutant Lua emphasizing interoperation with Python, Perl, etc.
Line 98: Line 159:

Line 100: Line 163:
Line 101: Line 165:
 * Eiffel/Haskell [[http://epolyglot.sourceforge.net/]] (last updated 2001)
 * PythonVsHaskell has a section "Using both Python & Haskell with ctypes".


* Eiffel/Haskell http://epolyglot.sourceforge.net/ (last updated 2001)
 * [[PythonVsHaskell|PythonVsHaskell]] has a section "Using both Python & Haskell with ctypes".
Line 105: Line 172:
 * LotusNotes [[http://www.dominopower.com/issuesprint/issue200008/command.html]]
 * [[PostgreSQL]] [[http://www.linuxgazette.com/issue80/nielsen.html]]
 * RenderMan [[http://www.lysator.liu.se/~ture/terry.html]]
 * CorbaPython: for a generic solution to language integration


* [[LotusNotes|LotusNotes]] http://www.dominopower.com/issuesprint/issue200008/command.html
 * [[PostgreSQL|PostgreSQL]] http://www.linuxgazette.com/issue80/nielsen.html
 * [[RenderMan|RenderMan]] http://www.lysator.liu.se/~ture/terry.html
 * [[CorbaPython|CorbaPython]]: for a generic solution to language integration

Line 111: Line 182:
Line 112: Line 184:

Line 115: Line 189:
Line 116: Line 191:

[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++:

  • Pyrex - write your extension module on Python (!)

  • Cython -- Cython -- an improved version of Pyrex

  • CXX - PyCXX - helper lib for writing Python extensions in C++

  • SCXX

  • 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

  • PicklingTools is a collection of libraries for exchanging Python Dictionaries between C++ and Python.

  • weave - include C code lines in Python program

  • ackward exposes parts of Python's standard library as idiomatic C++

C/C++ Binding Generators

Tools to make C/C++ functions/methods accessible from Python by generating binding (Python extension or module) from header files.

  • boost.python - Expose C++ classes functions and objects to Python, and vice-versa, using just C++ compiler

  • PyAutoC - Automatically wrap C functions and structs, using just C compiler.

  • pwig is a SWIG extension for writting new language modules in 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

  • shiboken - Binding Generator used to create PySide Python bindings for Qt

  • SIP - similar to SWIG but specialised for Python and C++. Used to create PyQt, the Qt API wrapper library

  • SWIG - generate extension module from your .h files


Articles


Related

Delphi

Fortran

Lisp

Prolog

See also http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=Python+prolog

Java

  • Jython - Python implemented in Java

  • JPype - Java for CPython

  • Jepp - Java embedded Python

  • JCC - a C++ code generator for calling Java from C++/Python

C#/.NET

  • ActiveState research

  • 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

For converting/porting Perl code to Python the tool 'Bridgekeeper' http://www.crazy-compilers.com/bridgekeeper/ may be handy.

PHP

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.

  • Lupa - fast wrapper for LuaJIT2 written in Cython.

  • 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

Other (applications)

to name a few. There are much more...

Other (standards and protocols)

See also

Thinki: UsingPythonWithOtherLanguages

IntegratingPythonWithOtherLanguages (last edited 2018-03-07 22:49:23 by WimLavrijsen)

Unable to edit the page? See the FrontPage for instructions.