尝试在程序中导入某些模块(编译的.pyc)时遇到一些问题。我知道它是在Python 2.6.6(r266:84297)中编译的,我已经安装了相同的版本,但是在尝试导入它时出现了错误的“ bad magic number” :(
有人知道我做错了吗?还是有可能在.pyc模块中更改幻数?
正如Matthew所链接的答案所解释的那样,您的问题几乎可以肯定是由于使用不同版本的Python来编译和加载模块。您可以这样确定幻数:
with open('pyuca.pyc', 'rb') as f: print struct.unpack('<H', f.read(2))
您可以通过打印来确定您的Python版本sys.version(交互式启动时也会回显该版本)。如果使用的是Python 2.6.6,则幻数应为62161。如果不同,则需要切换到其他Python才能导入模块。
sys.version
完全相同的适用于.pyo文件。
.pyo