序
最近根据公司生产需求写了个小脚本,想打包成exe文件分发给其他人使用,但又担心代码本反编译而泄露信息,所以花了一整天时间,磕磕绊绊的,终于搞定了!来之不易的“成果”需要总结和记载(毕竟耗费了生命中一天之久的时长)。
目录
一、python如何打包成exe (常规打包方法)
二、反编译exe文件
三、防止反编译方式生成exe
正文
一、python如何打包成exe (常规打包方法)
1.1首先你要先把自己的程序写好,在pycharm中运行正常。我的程序文件目录结构如下图所示:
1.2直接控制台输入命令:pyinstaller -p C:\Users\Administrator\PycharmProjects\ExportCustomerInfo\venv\Lib\site-packages -i v6.ico -F main.py
此句解释如下:
这里输入自己的第三方引用包的路径(不懂的看我上一篇文章);
这里是将要生成exe的图标设置(友情提示:非ico格式的图片会出错哦)
这里是你要发布的主程序文件
1.3运行结果如下:Building EXE from EXE-00.toc completed successfully.代表成功!
1.4新产生的文件及文件夹如下,请到dist文件夹里去找exe双击运行效果如下:
二、反编译exe文件
2.1先去网上下载一个pyinstxtractor.py的文件,将其和exe文件放到一个新文件夹里面如12345。
下载地址:https://download.csdn.net/download/hmy123cq3/
2.2在电脑cmd命令行,切换到12345这个文件夹路径里并执行如下代码:
python pyinstxtractor.py main.exe
执行效果如下:
2.3可以到如下路径查找文件,可见很多pyc文件,其中我们的机密代码就在这些文件内,反编译pyc文件是很容易的可以借助工具或在线反编译,这里就不详细介绍了。
三、防止反编译方式生成exe
3.1首先,清理环境,将一、二两步产生的文件,全部删除掉。我删除的文件如下图所示:
3.2然后,创建一个py文件,命名为create_pyd.py,然后在此文件中敲入如下代码:
# -*- coding: utf-8 -*- """ Created on Wed Aug 29 13:33:20 2018 @author: Li Zeng hai python build_pyd.py build_ext --inplace """ from distutils.core import setup from Cython.Build import cythonize setup( name='any words.....', ext_modules=cythonize(["jr_customer_excel.py", "send_mail.py"]), )
注意最后一行代码了吗,ext_modules=cythonize([“jr_customer_excel.py”, “send_mail.py”])…,这里面的数组就是你想要编译成pyd格式的文件,有多少就添加多少。
3.3然后在pycharm控制台执行如下代码:
python create_pyd.py build_ext --inplace
如果执行以上代码出错提示没有Cython,执行如下命令进行安装:
pip install Cython -i https://pypi.tuna.tsinghua.edu.cn/simple
结果如下图所示:
接着将这几个pyd后缀的文件名中的cp39-win_amd64部分去掉,去掉后如下图所示:
3.4执行步骤一中的打包exe(常规方法),即直接执行代码:
pyinstaller -p C:\Users\Administrator\PycharmProjects\ExportCustomerInfo\venv\Lib\site-packages -i v6.ico -F main.py
执行结果如下图所示,Building EXE from EXE-00.toc completed successfully.代表成功了!
此步骤需要注意的一个坑就,main.py顶部的引用,已经要把其他py文件里的引用都加上,不然会提示找不到模块,什么原因我也不知道,我是按错误提示操作的,如下所示:
3.5到dist文件夹里运行exe文件看看成果吧!
3.5重复执行一下步骤二作为校验,结果如下所示:
此时,已经找不到这里面的两个文件了。
至此,本文全部完毕!
今天的文章
py exe 反编译_pycharm请选择有效的编译器分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/80701.html