Module and high-level interface to executing a python script

My project creates a "python" module, auto-imports it into the current python context/interpreter, and then runs a script (which presumably accesses the module I created).  This implements the machinery that was missing for me to do this via go-python.

One thing of potential note/issue is that I have slightly changed the syntax of PyRun_SimpleFile.  The original API takes an already-opened FILE*.  However, since this is a huge pain in Go, I stepped around the issue by having it take only a file name.  While one can, in C, re-execute the same python script simply by fopen(3)ing the .py file once and rewind(3)ing it for every execution, my approach here means this is not possible in Go: the file must be opened anew for each execution.

This is fine for my uses; is it correct for go-python, though?
for macros, I usually create a little shim function in C that uses the macro.
so we can detect when the macro change under our feet.
see for example:
https://github.com/sbinet/go-python/blob/master/numeric.go#L6

note-to-self: hum... one should perhaps make them static...