编译pyc文件——python无法运行其它版本编译的pyc文件的情况

来源:互联网 发布:安川dx200编程教学 编辑:程序博客网 时间:2024/06/05 18:13
我之前学习python的时候就知道pyc文件,它不但可以提高速度,还可以一定的隐藏代码细节(可以反编译)。另外,python源文件和pyc文件都是平台无关的。
       但是,我发布一个程序包的时候发现事先编译好的pyc文件提示“magic number”错误。
       这个“魔法数”控制一个文件是否可以真正运行,比如可以给一个文本文件增加可执行权限,但这个文件是无法执行的。因为文本文件没有魔法数。查看魔法数的方法是用od命令查看一个文件,第一个数字就是了,不同的系统拥有不同的魔法数。
      后来发现,我编译pyc文件的python版本是2.7的,而执行pyc文件的python版本是2.4.3。因为不同python版本无法使用其它python版本编译的pyc文件
      这种情况不知道后续的版本会不会解决,目前有些程序会要求特定的python版本就有这个原因吧。

      编译pyc文件:python -m py_compile test.py
      优化编译pyc文件: python -O -m py_compile test.py
          优化编译pyc文件,并删除文档字符串: python -OO -m py_compile test.py
0 0
原创粉丝点击