『壹』 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即可。
混淆的目的是最大程度保護源碼,在發布到客戶端後不被輕易破解。
『貳』 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編譯用pyinstaller命令。
在python命令輸入框中可以用命令pip install pyinstaller 來安裝pyinstaller
『肆』 Python腳本如何編譯
Python是腳本語言,解釋執行,不需要編譯。pyc是為了提高效率。就知道這么多。
『伍』 Python關於.pyd文件無法import的問題的解決方法
當我想載入pyd文件,用Python調用裡面的函數時
使用語句:import tick_gy as gal
pycharm編譯器報錯: MoleNotFoundError error from .pyd file: MoleNotFoundError: No mole named"tick_gy" 表示一直找不到該模塊
找了半天,最終解決了此問題,特此分享給大家。卜芹笑如果大神有更好的辦法請留言,謝謝分享。
一種可能是:.pyd文件名稱 於該語句中的「import tick_gy as gal」不一致
另外一種可能是:.pyd文件目錄錯誤,應放在在Python編譯器的Lib/site-packages目錄下
還有一種可能是:環境變數。Python文件找不到.pyd文件目錄,應將.pyd文件目錄添加至環境變數中
1. 手動添加環境變數。採用系統手動添加
2.將該語句放置在import tick_gy as gal語句前
sys.path.append('C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python39\\Lib\\site-packages')
os.environ['path'] += ';C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python39\\Lib\\site-packages'
在嘗試了三種可能性操作了,統統失敗。最終原因是因為pycahrm編譯器為Python39,首模而生成.pyd文件的編譯器是Python37。兩者編譯器版本不兼容,將Python39卸載,重裝Python37,無需上述操作型含,成功!
『陸』 python如何編譯
編寫的話,拿什麼編輯器編寫都可以。
如果是編譯的話,python是不需要編譯的,直接運行即可。
運行的話,你需要安裝一個python的解釋器,可以是官方python,actiePython或者其他版本的python。
然後你可以選擇python自帶的IDLE編寫,也可以在命令行下輸入python進入交互shell進行編寫,當然也可以用支持python語言的IDE進行編寫。
『柒』 如何在windows下編譯執行python腳本
Python安裝好以後,在開始菜單會看到一個idle工具(一個增強的交互命令行解釋器窗口)以及一個自帶的編輯器。
在任意目錄新建一個.py文件或者保存的時候以.py結尾,用記事本、Python自帶的編輯器或者其他編輯器如Sublime
Text或者NotePad++都行。
如果你使用的是idle,直接按F5就能在Python自帶的命令行查看結果
如果是用記事本或者其他編輯器,快捷鍵win+R調出運行目錄,輸入cmd,然後在命令行里進入這個目錄,輸入python
[filename].py或者[filename].py就可以看到運行結果了