Python编译运行,如何将python程序编译成执行档

1,如何将python程序编译成执行档Python安装好以后,在开始菜单会看到一个idle工具(一个增强的交互命令行解释器窗口)以及一个自带的编辑器 。好像只有pypy项目的rpython语言(python的一个子集)可以转成c,几乎没有实际用途 。使用打包软件,py2exe,pyinstall,cxfreeze等
2 , Python程序代码混淆编译打包运行桌面程序防破解向像Python这种解释性的语言,要想私有化部署的同时又保护好源码,就像是对于鱼和熊掌的追求 。虽然做不到尽善尽美,但是对代码进行混淆,增加一点破解的难度,或许能规避一些泄露的风险 。本次演示环境:linux确保要发布的包根目录("demo")中有__main__.py文件,这个是程序执行入口 。编译批量改名.pyc文件移动.pyc文件清理.py文件清理__pycache__文件夹打包成zip运行时只要将zip文件作为参数即可最终整合脚本调用方式对于在变量和函数名上的混淆有点小儿科 , 而对于跨文件的类名的混淆又太容易实现 。所以对于混淆程度的取舍,要视工程的规模而定 。2.1 混淆工具pyminifier在原来的工具 pyminifier上修复了几个bug 。安装:python3 安装或者clone下来,自行安装使用例子2.2 源码变更不同的配置对于源码的要求不同 , 以下是笔者踩过的坑 。其他混淆想法结合混淆、编译和打包,尝试出以下发布脚本 。主要的思路 :创建一个工作目录tmp,然后在此目录下混淆、编译python代码,完成后把内容打包成pyc文件 , 再将pyc文件和其他配置文件移动到dist,发布dist即可 。混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解 。
3,小白科普Python代码是编译执行还是解释执行python代码是解释执行的 。所谓编译执行就是源代码经过编译器编译处理 , 生成目标机器码,即机器能直接运行的二进制代码,下次运行时无需重新编译 。这种代码不具备可移植性、但执行速度快 , C、C++这类语言属于编译型语言 。解释型语言是在代码运行期间逐行翻译成目标机器码,下次执行时,还是需要逐行解释,我们可以简单认为 Java、Python 都是解释型语言 。【Python编译运行,如何将python程序编译成执行档】
4,python代码运行需要编译吗有人在讨论 Python 代码是编译执行还是解释执行?这个问题还可以换一种说法: Python 是编译型语言还是解释型语言?回答这个问题前,我们先弄清楚什么是编译型语言 , 什么是解释型语言 。所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译 。不过它是针对特定CPU体系的,这些目标代码只能在特定平台执行 , 如果这个程序需要在另外一种 CPU 上面运行,这个代码就必须重新编译 。它不具备可移植性,但是执行速度快,C、C++这类语言属于编译型语言 。而解释型语言是在代码运行期间逐行翻译成目标机器码,下次执行时,还是需要逐行解释,我们可以简单认为 Java、Python 都是解释型语言 。编译型相当于厨师直接做好一桌子菜,顾客来了直接开吃,而解释型就像吃火锅,厨师把菜洗好 , 顾客需要自己动手边煮边吃,效率上来说解释型语言自然比不过编译型语言,当然也不是绝对了,像 JIT 的效率就很高以上是对编译型语言和解释型语言的一个简单粗暴的区分,但是 Python(这里主要是指CPython)并不是严格的解释型语言,因为 Python 代码在运行前,会先编译(翻译)成中间代码,每个 .py 文件将被换转成 .pyc 文件,.pyc 就是一种字节码文件,它是与平台无关的中间代码,不管你放在 Windows 还是 Linux 平台都可以执行,运行时将由虚拟机逐行把字节码翻译成目标代码 。我们安装Python 时候,会有一个 Python.exe 文件,它就是 Python 解释器,你写的每一行 Python 代码都是由它负责执行,解释器由一个编译器和一个虚拟机构成,编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码,所以,解释型语言其实也有编译过程 , 只不过这个编译过程并不是直接生成目标代码,而是中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码 。总结Python代码首先会编程一个字节码文件 , 再由虚拟机逐行解释,把每一行字节码代码翻译成目标指令给CPU执行 。推荐学习《Python教程》 。5,python怎么编译python编译用pyinstaller命令 。在python命令输入框中可以用命令pip install pyinstaller 来安装pyinstallernotepad只是一个文本编辑器,不能直接run你编辑完成python文件后,假设命名为test.py然后你cd到刚刚保存的python文件所在的目录执行python test.py就可以运行了6,如何编译Python使之成为可执行程序Python是一个强大的工具 , 可惜不是每个人的计算机里面都有安装 。当您写了一个好用的工具 。要如何让那些没有安装Python的人使用你的工具呢?对于这样一个需要standalone exectuable环境的需求,直到撰写经验为止 , 只看到两个比较好用且有持续维护的套件 。一个是py2exe 。另外一个就是本经验要介绍的PyInstaller 。1PyInstaller安装2最新版本:PyInstaller 2.03直接“解压缩”之后即可使用,解压到您想让他在的路径即可ENDPyInstaller配置1事先写好py程序2在命令行执行:python Makespec.py --console --onefile NotePad\notepad.py报错:Configfile is missing or unreadable. Please run Configure.py before building3在命令行执行:Configure.py报错:Python 2.6+ on Windows support needs pywin32,Please install http://sourceforge.net/projects/pywin32/4安装最新版本的 pywin32-217.win32-py2.7.exeENDPyInstaller使用命令行中运行目录切换到PyInstaller的安装目录“E:\pyinstaller-1.5\pyinstaller-1.在PyInstaller的安装目录下新建一个文件夹(比如NotePad),然后将要转换的py脚本放到文件夹里(notepad.py)E:\pyinstaller-1.5\pyinstaller-1.5>python Makespec.py --console --onefile NotePad\notepad.pyE:\pyinstaller-1.5\pyinstaller-1.5>python Build.py NotePad\notepad.spec验证exeE:\pyinstaller-1.5\pyinstaller-1.5>E:\pyinstaller-1.5\pyinstaller-1.5\NotePad\dist\notepad.exe 0 0 100(成功)查看生成的文件 , 生成的中间文件spec查看生成的文件,生成的最终文件exeEND注意事项在转换之前要确保py程序可以正常通过如果转换过程中出现什么错误 , 用搜索引擎搜索解决一下所谓的打包,全部都是将python解释器+源码放一起 , 执行时仍然是由解释器执行原始代码 。想达到保护源码的目的,用打包工具是做不到的 。Cython可以看看,关键逻辑用Cython写,不关键就写python里1、说明编译python程序就是把python脚本转换成操作系统中的可执行文件,一般使用pyinstaller来完成 。2、步骤1)安装pyinstaller使用pip install pyinstaller命令来安装2)编译脚本python安装目录\script\pyinstaller 脚本文件名3)完成执行脚本后就可以在脚本目录生成dist目录,目录就有打包好的可执行文件3、备注pyinstaller参数-w指令直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽-f指令注意指令区分大小写 。这里是大写 。使用-f指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹-p指令这个指令后面可以增加pyinstaller搜索模块的路径 。因为应用打包涉及的模块很多 。这里可以自己添加路径 。不过经过笔者测试,site-packages目录下都是可以被识别的 , 不需要再手动添加想必你是问的Windows平台下的吧,如果是Linux平台,源码直接编译的,根本无需多问 。如果是Windows下,用PY2这个工具,另外,在Windows平台下 , 没有“编译”这个说法,确切的说,应该叫“打包”使用py2exe 。相关文档很多,直接看官方文档和例程就可以做到了 。http://www.py2exe.org/index.cgi/ListOfOptions

    推荐阅读