这篇文章将为大家详细讲解有关使用pyinstaller怎么实现一个超级加密功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
pip install Cython pip install pyinstaller
我安装的是最新的2019,选择安装界面的时候选如下图这个和python的
python应该是可选的,但是我怕麻烦就直接选上了
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删掉
这个是固定的
里面是自己要加密转c的的py文件,我是把所有功能都封装在这个里面了,到时候引入包直接调用他
命令行运行
python setup.py build_ext --inplace
结束后会在当前路径下生成一个main8_2.cp36-win_amd64的文件,他的后缀名就不用管它了,直接把你要加密的那个包额外的部分删除掉就行了,我删除的部分就是.cp36-win_amd64,这里地的确的确是有一个点号的
然后把相应的py文件换个路径,好像可以不换,优先级不一样,为了避免麻烦,我也懒得查资料,所以我就换了他的路径
这个py现在变成了一个pyd文件,还有一个c文件,可以把它理解成一个包,跟py的包一样去调用就行了
要把所有调用的包都导入一次
我用的pycharm虽然想报错,但是运行是没有错误的
虽然这种法几乎没多大用处,但是由总比没有要好
pyinstaller -i fa.ico xxx.py -F --key hsakdhiia8 --clean
最终成成功打包exe,在当前路径下的dist可以找到可执行文件
补充:python程序的加密和打包
在程序发布时,有时会有程序加密和打包的需求,SO:
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])] )
python build.py build_ext --inplace
打包成一个文件
pyinstaller --onefile MoonServer.py
关于使用pyinstaller怎么实现一个超级加密功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。