[Tutor] Version of a .pyc file

Don Taylor nospamformeSVP at gmail.com
Thu Apr 20 03:48:13 CEST 2006


Terry Carroll wrote:

>>How can I tell if a .pyc file was built with 2.3 or 2.4?
> 
> 
> There's a "Magic Number" in the first 2 or 4 bytes, (depending on whether 
> you consider the \r\n part of the MN).
> 
> 
>>>>f = open("pycfile.pyc", "rb")
>>>>magictable = {'\x3b\xf2\r\n': "2.3", '\x6d\xf2\r\n' : "2.4"}
>>>>magic = f.read(4)
>>>>release = magictable.get(magic,"unknown")
>>>>print "Python release:", release
> 
> Python release: 2.4
> 

I have used Terry's code to write a script to find all of the the .pyc 
files on my system that were compiled with the 2.3 version of the 
compiler, and I have removed these files.

But my underlying problem still occurs: somewhere somebody is calling 
for the 2.3 version of the Python vm .dll and not finding it.  This is 
happening under Pydev/Eclipse and my only recourse is to blow Eclipse 
away using Task Manager.

So maybe I have  a .pyd file somewhere that is a 2.3 extension.

Is there a way to examine .pyd files to see if they were built for 
Python 2.3?

Finally, are there any other possible file extension types that I should 
be looking at?

Thanks,

Don.



More information about the Tutor mailing list