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

Faheem Mitha faheem at email.unc.edu
Fri Jul 2 18:18:59 CEST 2004


On Fri, 2 Jul 2004 10:43:29 -0500, Chad Austin <caustin at gmail.com> wrote:
> Faheem:  I think you're confused about one point.  All extension
> modules "embed the interpreter".  Since Python has loaded them, they
> all have access to the Python/C API and can do what they wish with it.

If you say so. I'm too ignorant about how these things work to have an
opinion.

>  Your real problem is that you don't seem to have the 'file' builtin. 
> You should put more work into trying to decompose and solve that
> problem.

I've been trying...  Actually, I don't think I have ever put so much
effort before into getting a library working.

> Now that I think about it, perhaps your extension module doesn't have
> direct access to the builtins, while __main__ does.  Try changing your
> hard-coded script to:
>
>           "from __builtin__ import *\n"
>           "hello = file('hello.txt', 'w')\n"
>           "hello.write('Hello world!')\n"
>           "hello.close()"

I've tried this already.  I think someone else suggested this. I get
(after building with bjam):

**************************************************************************
In [1]: import embed_ext

In [2]: embed_ext.foo()
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)

/usr/local/src/boost/boost-1.31.0/libs/python/example/
bin/example/embed_ext.so/gcc/debug/shared-linkable-true/<console>

/usr/local/src/boost/boost-1.31.0/libs/python/example/
bin/example/embed_ext.so/gcc/debug/shared-linkable-true/<string>

ImportError: __import__ not found

**************************************************************************

I don't know what this means. :-( . Perhaps simply that it does not
have the `import' builtin available to import `__builtin__'. :-) Have
you been able to reproduce any of these results? Thanks.

                                                                       Faheem.





More information about the Cplusplus-sig mailing list