setup.py for c++
Zora Honey
zhoney at wildmail.com
Mon Nov 3 16:18:11 EST 2003
I'm taking baby steps toward extending python with c++. I got the demo
from "Extending and Embedding the Python Interpreter" running. My next
step was to modify the demo to output stuff using <iostream>. This
fails, and this seems to be because my setup.py file is using a c
compiler (gcc) instead of a c++ compiler. I've searched the web and
found several solutions, none of which I've been able to implement
correctly. I seem to be only inches away but always missing a critical
piece of information, and I was wondering if the gurus here could help.
My attempts:
1.) From Pythonmac-SIG: "The problem is that the link step is done with
"gcc", not "g++", so you have to add the C++ library by hand. The
easiest is to add an extra_link_libraries (iirc) flag to the setup.py
file." Where in the setup.py file? Is this simply a flag or does it need
arguments?
2.) From "Extending and Embedding the Python Interpreter": "For example,
if you need to link against libraries known to be in the standard
library search path on target systems
Extension(...,
libraries=["gdbm", "readline"])"
This does seem to work, but I don't know if it's the same as 1) or which
libraries I need to include.
3.) From "Installing Python Modules": "Arbitrary switches intended for
the compiler or the linker can be supplied with the -Xcompiler arg and
-Xlinker arg options:
foo foomodule.c -Xcompiler"
I'm using the syntax:
odule1 = Extension(modulename ,
sources = sourcecode,
)
in my setup.py file, and don't know where to put this compiler option.
4.) From ?: Use compiler option: python setup.py build --compiler=g++
I get an error message that ends in:
distutils.errors.DistutilsPlatformError: don't know how to compile C/C++
code on platform 'posix' with 'g++' compiler
Which sounds like distutils doesn't like my compiler (or somehow I need
to set the platform--I'm on RedHat 7.1).
Thanks for any ideas,
Zora
More information about the Python-list
mailing list