如何编译python程序
㈠ 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即可。
混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解。
㈡ ubuntu鍙浠buildpython绋嫔簭钖
鎭ㄦ兂闂镄勬槸ubuntu鍙浠ュ垱寤簆ython绋嫔簭钖楋纻鍙浠ワ纴镙规嵁镆ヨ㈠崥瀹㈠洯鏄剧ず銆
1銆佸嗳澶囧ソpython婧愮爜鍖呫
2銆佸惎锷ㄩ暅镀忓苟鎸傝浇python婧愮爜鍖呮墍鍦ㄧ殑鐩褰曘
3銆佸畨瑁呯紪璇戝拰姝e父杩愯宲ython镓闇镄勭浉鍏冲簱銆
4銆佺紪璇戝畨瑁卲ython銆
5銆乴ink鍙镓ц屾枃浠跺埌绯荤粺镄勭幆澧冨彉閲忚矾寰勚
㈢ 怎么用codeblocks打开python代码并编译运行
环境配置:
使用IDE: Code::Blocks,在编译时需要连接python的库,setting->complier and debugger setting->Linker setting->Link Libraries, 增加两个库python25.lib, libpython25.lib。 或者在Build option里面设置linker setting也可。
㈣ python如何编译
1、说明
编译python程序就是把python脚本转换成操作系统中的可执行文件,一般使用pyinstaller来完成。
2、步骤
(1)安装pyinstaller
使用pip install pyinstaller命令来安装
(2)编译脚本
python安装目录scriptpyinstaller 脚本文件名
(3)完成
执行脚本后就可以在脚本目录生成dist目录,目录就有打包好的可执行文件
3、备注
pyinstaller参数
-w指令
直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽。
-F指令
注意指令区分大小写。这里是大写。使用-F指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹。
-p指令
这个指令后面可以增加pyinstaller搜索模块的路径。因为应用打包涉及的模块很多。这里可以自己添加路径。不过经过笔者测试,site-packages目录下都是可以被识别的,不需要再手动添加。
python学习网,大量的免费python视频教程,欢迎在线学习!
㈤ 如何编译Python使之成为可执行程序
Python是一个强大的工具,可惜不是每个人的计算机里面都有安装。当您写了一个好用的工具。要如何让那些没有安装Python的人使用你的工具呢?
对于这样一个需要standalone exectuable环境的需求,直到撰写经验为止,只看到两个比较好用且有持续维护的套件。一个是py2exe。另外一个就是本经验要介绍的PyInstaller。
1
PyInstaller安装
2
最新版本:PyInstaller 2.0
3
直接“解压缩”之后即可使用,解压到您想让他在的路径即可
END
PyInstaller配置
1
事先写好py程序
2
在命令行执行:python Makespec.py --console --onefile NotePad\notepad.py
报错:Configfile is missing or unreadable. Please run Configure.py before building
3
在命令行执行:Configure.py
报错:Python 2.6+ on Windows support needs pywin32,Please install http://sourceforge.net/projects/pywin32/
4
安装最新版本的 pywin32-217.win32-py2.7.exe
END
PyInstaller使用
命令行中运行
目录切换到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.py
E:\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
查看生成的文件,生成的最终文件exe
END
注意事项
在转换之前要确保py程序可以正常通过
如果转换过程中出现什么错误,用搜索引擎搜索解决一下