brad wrote:
I have some c++ binaries that do rather intense number computations. They do it well and rather quickly compared to other languages (not just Python). An example:

[EMAIL PROTECTED]:~/$ date && ./compute.cpp.o < 1_million.txt > /dev/null && 
date
Thu May 15 13:08:28 EDT 2008
Thu May 15 13:08:31 EDT 2008
[EMAIL PROTECTED]:~/$ date && python compute.py < 1_million.txt > /dev/null && date
Thu May 15 13:08:38 EDT 2008
Thu May 15 13:14:50 EDT 2008

In this case, c++ does one million things in 3 seconds that Python takes more than 6 minutes to do. The one million is a minimum. At times the computations are in the billions. This is why c++ was chosen.

However, other components can be written in a more user friendly, more easily maintained language. We've chosen Python for this. The main question now is how to pass the computationally heavy info to c++ from within Pyhton. os.system is not ideal. Just wondering how other folks do this? I have source to some of the c++ code, but some of it is in binary from only. It can take stdin or arguments.

Thanks for any tips,

Brad

--
http://mail.python.org/mailman/listinfo/python-list


There are lots of ways to do this. Lots of the modules you use are written in C and callable from Python. (Including sys, os, socket, PIL, numpy, all graphics and GUI modules, ...) And that's exactly what you want here -- a module that you can import into Python which gives you the ability to make calls into your C++ code. This is often called *wrapping* your C++ library.

This is no small task, and it depends heavily on the size/complexity of the API you wish to wrap, and whether it's C (easier) or C++(harder). However, there are *lots* of tools to help. I'd start by looking here:
 http://wiki.python.org/moin/AdvocacyWritingTasks/GlueLanguage

Good luck,

Gary Herron


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to