1.首先安裝上必須的包
pip install Cython
pip install pyinstaller
2.最好是安裝vs 版本的話
我安裝的是最新的2019,選擇安裝界面的時(shí)候選如下圖這個(gè)和python的
![](/d/20211017/c21b2fb04d75da170b85426aab4bcde5.gif)
python應(yīng)該是可選的,但是我怕麻煩就直接選上了
3.然后接下來(lái)就是寫setup.py文件了
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize(["main8_2.py"]), # add.py 為需要打包的文件名,不能包含中文
)
#python setup.py build_ext --inplace
#在把.cp36-win_amd64刪掉
這個(gè)是固定的
里面是自己要加密轉(zhuǎn)c的的py文件,我是把所有功能都封裝在這個(gè)里面了,到時(shí)候引入包直接調(diào)用他
命令行運(yùn)行
python setup.py build_ext --inplace
結(jié)束后會(huì)在當(dāng)前路徑下生成一個(gè)main8_2.cp36-win_amd64的文件,他的后綴名就不用管它了,直接把你要加密的那個(gè)包額外的部分刪除掉就行了,我刪除的部分就是.cp36-win_amd64,這里地的確的確是有一個(gè)點(diǎn)號(hào)的
然后把相應(yīng)的py文件換個(gè)路徑,好像可以不換,優(yōu)先級(jí)不一樣,為了避免麻煩,我也懶得查資料,所以我就換了他的路徑
4.接下來(lái)就是主程序進(jìn)行調(diào)用了
這個(gè)py現(xiàn)在變成了一個(gè)pyd文件,還有一個(gè)c文件,可以把它理解成一個(gè)包,跟py的包一樣去調(diào)用就行了
5.還有很重要的一點(diǎn)
要把所有調(diào)用的包都導(dǎo)入一次
![](/d/20211017/7cd4d9d40ee9e9628e54f11730b61e0d.gif)
我用的pycharm雖然想報(bào)錯(cuò),但是運(yùn)行是沒(méi)有錯(cuò)誤的
6.再用key進(jìn)行加密
雖然這種法幾乎沒(méi)多大用處,但是由總比沒(méi)有要好
pyinstaller -i fa.ico xxx.py -F --key hsakdhiia8 --clean
最終成成功打包exe,在當(dāng)前路徑下的dist可以找到可執(zhí)行文件
補(bǔ)充:python程序的加密和打包
在程序發(fā)布時(shí),有時(shí)會(huì)有程序加密和打包的需求,SO:
用CYTHON編譯加密:
build.py
#!/usr/bin/python
#encoding: gb2312
filename="client_missions.py"
print"--------------------------------------"
print" python build.py build_ext --inplace"
print"--------------------------------------"
from distutils.coreimportsetup
from distutils.extensionimportExtension
from Cython.Distutilsimportbuild_ext
importsys
efile=filename.split('.')[0]
setup(
cmdclass = {'build_ext': build_ext},
ext_modules =[Extension("%s"%efile , ["%s"%filename])]
)
開(kāi)始編譯加密:
python build.py build_ext --inplace
打包成一個(gè)文件
pyinstaller --onefile MoonServer.py
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Pyinstaller打包文件太大的解決方案
- pyinstaller封裝exe的操作
- 基于PyInstaller各參數(shù)的含義說(shuō)明
- 解決Pyinstaller打包軟件失敗的一個(gè)坑
- Python實(shí)現(xiàn)圖片指定位置加圖片水?。ǜ絇yinstaller打包exe)
- pyinstaller打包可執(zhí)行文件,存放路徑包含中文無(wú)法運(yùn)行的解決方案