打包一个python解释器

时间:2022-02-06 16:36:55

利用python的exec语句,可以很方便地动态执行python语句。如果一个python代码打包为了exe,其原先的代码就很难更改了。一个好的解决方法就是import相应的库,然后把主程序段放到一个单独的文件中被exec执行。

现在打包一个简单的python解释器,因为是示例,只调用一个numpy库。

  • main.py 解释器
import numpy as np

if __name__ == '__main__':
    with open('code.py','r+') as f:
        code=f.read()
        exec(code)
  • code.py 被解释内容
a=np.array([1,2,3])
print(a)
i=0
for i in range(100):
    i+=i
print(i)
print(eval('1+2'))
with open('run.cmd') as f:
    print(f.read())

pyinstaller打包:

pyinstaller -F -c main.py

执行,我们看到:
打包一个python解释器
只要是使用已经调入main.py的模块(或者是模块别名),都可以运行。这样就达到了打包解释器的效果。