Home >>> Courses >>> Special Topics >>> Extensions

What customers say ...

Mike is an outstanding teacher ... I will look for his classes in the future.

Jennifer Trasti, Software/Systems Engineer, Sandia National Laboratories, Albuquerque, NM, USA more...

I enjoyed the course very much and learned a lot. My interest for quite few of topics was ignited during the course and I will into more details. I understood many principles. All in all: Very good training! Thank you very much all the best.

Dominik Schwinn, German Aerospace Stuttgart about the course "Python für Programmierer und Python für Wissenschaftler und Ingenieure" more...

Good course. Very competent trainer for this introduction. The course offers wide spectrum of topics and goes into depth were participants need it most.

Helmut Dittrich, CEO DiFis-Engineering UG, arrow-fix.com, about the German introduction to Django "Einstieg in Django" more...

Course curriculum and delivery absolutely goal-oriented very understandable. Highly recommended!!!

Ralf Dörksen, Sangross about the course "Introduction to Django" more...

Very good introduction to the programming language.

Matthias Enderle, freelancer programmer about the German version of the course "Python for Programmers" more...

Module - Python-Extensions with Other Languages

Dates for Open Courses

Course only available as in-house training. Please ask us at info@python-academy.de


Python can be readily connected with other languages. This way, existing libraries in other languages can be used.

Programming in Python is rather comfortable and efficient. The speed of Python programs for some tasks is considerably slower than for programs in other languages such as C/C++, C#, Java, or FORTRAN. As a solution slow program parts can be reimplemented in other languages and seamlessly incorporated in Python.

Furthermore, Python is often termed "glue languages" because of its ability to connected very different systems. The connection of libraries and programs that are implemented in other languages plays a important role for this ability.

Course Content

Introduction to Example

We use a computationally intensive example throughout the course. This allows for comparison of the different extension methods.

Use of Python's C-API

Standard Python is implemented in C and offers a comprehensive API for writing extensions. The basics of this API are taught. A working extension will be developed by hand that can be used by a Python program.

Python Extensions with Pyrex/Cython

Pyrex is a special language for writing Python extensions. It has mainly Python syntax with some limitations and some additions that allow for automatic translation into C code suitable to be compiled in an Python extension. Examples are used to show how Pyrex works. The possibilities of incorporating existing C programs are also explained.

Use of DLLs with ctypes

The package ctypes allows to access DLLs or shared libraries from Python. It works on the operating systems Windows, Windows CE, Mac OS X, Linux, Solaris, FreeBSD, and OpenBSD. The language in which the DLL is implemented doesn't matter. The usage of ctypes is introduced with examples. Under Windows Microsoft's .NET compiler und the mingw (gcc) compiler are used to compile the DLL. The shared library under Linux Linux is compiled with the gcc. One focus is type conversion between Python and the DLL.

Automatic generation of Extensions with SWIG

The "Simplified Wrapper and Interface Generator" (SWIG) allows to make C/C++ libraries accessible from 13 different languages. One of them is Python. The way SWIG works is covered using examples in C as well as in C++.


Jython is an implementation of Python in Java. It allows to access Java classes directly. The course covers the basics of Jython programs. Examples for use of existing Java classes as well as self written classes are used.


IronPython is a implementation of Python in .NET. It allows Access to all .NET features and makes it a first class .NET language right next to C# and Visual Basic. The course introduces IronPython, demonstrates how to use .NET assemblies, and how access self written C# classes.

Use of FORTRAN Subroutines from Python

FORTRAN is one of the oldest programming languages but it is still in heavy use for scientific applications due to its high performance. There are many old but well proven numerical libraries that can be used from Python.

The usage of F2PY to connect FORTRAN77 as well as FORTRAN90/95 programs with Python is demonstrated. One focus are object-oriented interfaces to those libraries.

Module Duration

1 day


The participants can follow all steps directly on their computers. There are exercises at the end of each unit providing ample opportunity to apply the freshly learned knowledge.

Course Material

Every participant receives comprehensive printed materials that cover the whole course content as wells as a CD with all source codes and used software.

The Python Academy is sponsor of PyCon Montréal 2015.

[PyCon Montréal 2015]

The Python Academy is sponsor of Python BarCamp Köln 2015.

[Python BarCamp 2015]“ border=

The Python Academy is sponsor of Chemnitzer Linux-Tage 2015.

Chemnitzer Linux-Tage 2015 - 21. und 22. März 2015

The Python Academy is sponsor of Django Girls Wroclaw 2015.

[Django Girls Wroclaw 2015]

The Python Academy is sponsor of PyCon Ireland 2014.

[PyCon Ireland 2014]

The Python Academy is sponsor of EuroSciPy 2014.

[EuroSciPy 2014]

The Python Academy is sponsor of PyData London 2014.

[PyData London 2014]

The Python Academy is sponsor of EuroPython 2014.

[EuroPython 2014]

The Python Academy is sponsor of PyCon 2014 Montréal.

[PyCon 2014 Montréal]

The Python Academy is sponsor of Python BarCamp Köln 2014.

[Python BarCamp 2014]

The Python Academy is sponsor of PyConDE 2013.

[PyCon DE 2013]

The Python Academy is sponsor of EuroPython 2013.

[EuroPython 2013]

The Python Academy is sponsor of PyCon US 2013.

[PyCon US 2013]

The Python Academy is sponsor of EuroSciPy 2013.

[EuroSciPy 2013]

The Python Academy is sponsor of PyConPL 2012.

[PyCon PL 2012]


The next open cousers
details ...

Python Academy sponsors EuroPython conference 2013
details ...

Python Academy sponsors EuroSciPy conference 2013
details ...

Python Academy sponsors Python BarCamp in Cologne
details ...

Next Meeting of Leipzig Python User Group, November 12, 2013
details ...

Introduction to Django, November 11 - 13, 2013
details ...

Professional Testing with Python, November 25 - 27, 2013
details ...

Advanced Django, January 13 - 15, 2014
details ...

Python Academy sponsors PyCon US conference 2013
details ...

Python Academy founder receives PSF Community Service Award
details ...