Getting a module's byte code, how?

Irmen de Jong irmen.NOSPAM at xs4all.nl
Wed Feb 2 17:46:43 EST 2005


Steve Holden wrote:
> Having said which, if the module was loaded from a .pyc file then the 
> bytecode is available from that - take everything but the first eight 
> bytes and use marshal.loads() to turn it back into a code object:

Yup. As I explained in the other message, this is basically
what I'm doing at the moment (with a few twists; it reads the .py
file if no .pyc is available).
But I also want the bytecode of modules that don't have a .pyc file,
possibly because they have already been 'dynamically' loaded from
another bytecode string ;-)

Now, I could ofcourse store the bytecode string that I started
with *inside* the module itself, in a special attribute or so.
This just occurred to me and I think it's a possible solution.
But the bytecodes must be stored by Python itself somewhere
already... because Python is able to execute my module... right?
I want them! :-)

> Note that the ugly details *might* change, and that byte codes are 
> version-dependent.

I know, but this fact was not yet mentioned in the Pyro manual.
Thanks for reminding me, I'll add it.

--Irmen



More information about the Python-list mailing list