小编典典

尝试导入.pyc模块时错误的幻数

python

尝试在程序中导入某些模块(编译的.pyc)时遇到一些问题。我知道它是在Python
2.6.6(r266:84297)中编译的,我已经安装了相同的版本,但是在尝试导入它时出现了错误的“ bad magic number” :(

有人知道我做错了吗?还是有可能在.pyc模块中更改幻数?


阅读 106

收藏
2021-01-20

共1个答案

小编典典

正如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才能导入模块。

完全相同的适用于.pyo文件。

2021-01-20