利用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
执行,我们看到:
只要是使用已经调入main.py的模块(或者是模块别名),都可以运行。这样就达到了打包解释器的效果。