如何編譯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程序可以正常通過
如果轉換過程中出現什麼錯誤,用搜索引擎搜索解決一下