python - 如何执行编译后的python代码

标签 python pyc

我有一个已编译的 Python 文件,path/program.pyc

我想用我当前的 globals()locals() 来执行它。我试过:

with open('path/program.pyc','rb') as f:
   code = f.read()
   exec(code, globals(), locals())

更具体地说,我想要的是:

a.py:

a = 1
# somehow run b.pyc

b.py:

print(a)

当我运行 a.py 时,我想看到输出:1

实际上 execfile()完全符合我的要求,但它仅适用于 .py 文件而不适用于 .pyc 文件。我正在寻找适用于 .pyc 文件的 execfile() 版本。

最佳答案

可能有更好的方法,但使用 uncompyle2获取源代码并执行将执行您需要的操作:

a = 1

import uncompyle2
from StringIO import StringIO
f = StringIO()
uncompyle2.uncompyle_file('path/program.pyc', f)
f.seek(0)
exec(f.read(), globals(), locals())

a 运行 b.pyc 应该输出 1

关于python - 如何执行编译后的python代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259786/

相关文章:

python - 使用模式创建更大的列表列表

python - 在 Django 中,什么是一对一关系?

python:python中有没有办法在运行文件之前删除旧的.pyc

Python 不解释已更改的文件,使用过时的 .pyc

python - 如何计算商品销售成本

Python 随机音频

Python 将IP转换为八进制地址

python - Python 缓存字节码 (pyc) 文件何时更新?

python - 尝试将 *.pyc 作为模块导入

python - 如何将多个 py 文件编译为一个文件?