利用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的模块(或者是模块别名),都可以运行。这样就达到了打包解释器的效果。

打包一个python解释器的更多相关文章

  1. 用 Python 编写的 Python 解释器

    Allison是Dropbox的工程师,在那里她维护着世界上最大的由Python客户组成的网络.在Dropbox之前,她是Recurse Center的引导师, … 她在北美的PyCon做过关于Pyt ...

  2. python学习笔记-python解释器

    刚开始学习python,首先要了解一下python解释器. 什么是python解释器? 编写python代码保存后,我们会得到一个以.py为扩展名的文本文件.要运行此文件,就需要python解释器去执 ...

  3. Python解释器

    当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件. 由于整个Python语言从规范到解释器都是开源的 ...

  4. Python和Python解释器

    目录 Python介绍(了解) Python解释器发展史(了解) Python解释器(了解) CPython IPython PyPy Jython IronPython 安装Python解释器(掌握 ...

  5. Python解释器有哪些?Python解释器种类

    Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释 ...

  6. Python解释器【转载】

    原文链接 0x01 简介 当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件. 0x02 Python ...

  7. 三 Python解释器

    当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件. 由于整个Python语言从规范到解释器都是开源的 ...

  8. Python 开篇及第一个Python程序

    本节内容 python 简单介绍 python 2.x 或者python 3.x python 安装 第一个python程序 一.python简单介绍 python的创始人为吉多.范罗苏姆(Guido ...

  9. python解释器的分类及特点

    CPython 当从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫CPython,在命名行下运行python ...

随机推荐

  1. 分析Android APK-砸壳-Fdex2

    砸壳的工具千千万,但是FDex2 是最有能耐的,我尝试过各种壳,都是秒砸的.特别说明一下,360的壳,oncreated 方法还是空的,但是其他大部分内容还是有的,反正是可以参考一下的. 安装环境: ...

  2. C#后台架构师成长之路-基础体系篇章大纲

    如下基础知识点,如果不熟透,以后容易弄笑话..... 1. 常用数据类型:整型:int .浮点型:double.布尔型:bool.... 2. 变量命名规范.赋值基础语法.数据类型的转换.运算符和选择 ...

  3. 单域MPLS 虚拟私有网络的整个详解配置过程(可跟做)

    1.PE1和P和PE2之间跑IGP协议 运营商里面首选的还是ISIS协议我们实验的话,用的是OSPF协议 R3的IP地址和OSPF配置 [R3]display ip int brief *down: ...

  4. MySQL数据库:group分组

    group by:分组 GroupBy语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后 ...

  5. 20.never give up

  6. Monday

    ssm项目 设计模式:上周(观察者模式,策略模式)

  7. 原生js获得八种方式,事件操作

    08.17自我总结 关于js 一.原生js获得八种方式 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getElementsByTa ...

  8. JavaWeb入门——背景知识

    JavaWeb入门——背景知识 摘要:本文主要介绍了Web服务器的相关知识. 概念 什么是JavaWeb JavaWeb,是用Java技术来解决相关Web互联网领域的技术的总称.Web包括:Web服务 ...

  9. 剑指offer笔记面试题9----用两个栈实现队列

    题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在尾部插入节点和在队列头部删除节点的功能. 测试用例: 往空的队列里添加.删除元素. ...

  10. 解决npm下载慢的问题

    方法一:使用淘宝定制的cnpm命令行工具替代默认安装npm npm install -g cnpm --registry=https://registry.npm.taobao.org 方法二:将np ...