[C++-sig] Re: compile errors with embedding example from tutorial

Faheem Mitha faheem at email.unc.edu
Fri Jul 2 23:25:01 CEST 2004


On Fri, 2 Jul 2004 11:48:43 -0500, Chad Austin <caustin at gmail.com> wrote:
> ------=_Part_96_10773503.1088786923701
> Content-Type: text/plain; charset=US-ASCII
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
>
> Heh, I've run into that problem before too.  You may have to do the
> import with PyImport_Import or whatever it is.  (The C equivalent of
> __import__)

You mean use PyImport_Import to import __builtin__? Can you tell me
what the correct syntax for this would be?

> Oddly enough, I'm not seeing any of the problems you are.  See the
> attached files.  Works fine for me.
>
> Chad at basilisk ~/tmp/bp
> $ scons
> scons: Reading SConscript files ...
> scons: done reading SConscript files.
> scons: Building targets ...
> g++ -DBOOST_PYTHON_STATIC_LIB -DBOOST_PYTHON_NO_TEMPLATE_EXPORT -I/usr/local/inc
> lude/boost-1_31 -I/usr/include/python2.3 -c -o hello.os hello.cpp
> g++ -shared -o hello.dll hello.os -L/usr/lib/python2.3/config -L/usr/local/lib -
> lboost_python-gcc -lpython2.3
> scons: done building targets.
>
> Chad at basilisk ~/tmp/bp
> $ python
> Python 2.3.4 (#1, Jun 13 2004, 11:21:03)
> [GCC 3.3.1 (cygming special)] on cygwin
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import hello
>>>> w = hello.World()
>>>> w.run()
>>>> import os
>>>> os.system('cat hello.txt')
> Hello world!0

Hi.

I tried using the second Scons file you posted. I had to add `import
sys' at the beginning.

For some reason it builds a file called libhello.so. I renamed it to
hello.so. Do you know why it is generating a file called libhello.so
and how to get it to output to hello.so?

Anyway, I get the same problem with your code as I do with mine,
namely

In [1]: import hello

In [2]: foo = hello.World()

In [3]: foo.run()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call
last)

/home/faheem/wc/corrmodel/boost/<console>

/home/faheem/wc/corrmodel/boost/<string>

NameError: name 'file' is not defined

I also used Boost.Build and got the same problem. I wonder what is
going on. Possibly some configuration issue with my system. Maybe I
should harass the Debian maintainers of Boost.Python about this. :-)

I figure that it is worth while trying to figure out how to import
__builtin__ somehow. If anyone has specific suggestions about the
syntax, let me know. I'm pretty clueless.

Scons looks cool. The last time I looked at it I didn't know any
Python. Maybe it is time to take a look again.

Thanks for your help.
                                                          Faheem.





More information about the Cplusplus-sig mailing list