[capi-sig] How to inspect module objects.

Guillaume Yziquel guillaume.yziquel at citycable.ch
Sun Feb 14 14:44:42 CET 2010


I'm currently reworking the existing software embedding Python (v2.5 for 
now) into Objective Caml.

You can already do some trivial things with it:

> yziquel at seldon:~$ ocaml
>         Objective Caml version 3.11.1
> # #use "topfind";;
> - : unit = ()
> Findlib has been successfully loaded. Additional directives:
>   #require "package";;      to load a package
>   #list;;                   to list the available packages
>   #camlp4o;;                to load camlp4 (standard syntax)
>   #camlp4r;;                to load camlp4 (revised syntax)
>   #predicates "p,q,...";;   to set these predicates
>   Topfind.reset();;         to force that packages will be reloaded
>   #thread;;                 to enable threads
> - : unit = ()
> # #require "python.interpreter";;
> /usr/lib/ocaml/python: added to search path
> /usr/lib/ocaml/python/python.cma: loaded
> /usr/lib/ocaml/python/oCamlPython.cmo: loaded
> # let q = Python.Module.import "dolfin";;
> val q : Python.obj = <abstr>
> # let w = Python.Module.import "modulethatdoesnotexist";;
> Exception: Python.Exception.Python_failure <abstr>.
> # 

So it catches exceptions when trying to import a module that does not 
exist, and it succeeds when importing dolfin, a module that does exist 
on my box.

But then I'd like to inspect the contet of this module. So, here's my 
question: How do you access the content of this module, or the content 
of the python object, preferably with the C API.

All apologies if these questions seem trivial to you, but I'm quite new 
to python and its internals. Pointers to relevant (tutorial?) 
documentation are appreciated.

All the best,

      Guillaume Yziquel

More information about the capi-sig mailing list