最近根据公司生产需求写了个小脚本,想打包成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/16231988

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 haipython build_pyd.py build_ext --inplace
"""from distutils.core import setup
from Cython.Build import cythonizesetup(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

结果如下图所示:

接着将这几个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重复执行一下步骤二作为校验,结果如下所示:

此时,已经找不到这里面的两个文件了。

至此,本文全部完毕!

python打包exe与反编译exe文件与防止反编译方式生成exe相关推荐

  1. linux编译cs文件,LinuxWine下如何编译安装CS反恐精英?

    CS反恐精英终于在我的Linux电脑上安装成功了,为了一个游戏,怎么说呢,自己付出了不少,当然离不开网络,慢慢的自己喜欢上了Linux.不知道为什么,安全.简介.方便.我也说不清楚.我游戏玩的不多,就 ...

  2. linux编译cs文件,Linux Wine下编译安装CS反恐精英

    CS反恐精英终于在我的Linux电脑上安装成功了, 为了一个游戏,怎么说呢,自己付出了不少,当然离不开网络,慢慢的自己喜欢上了Linux.不知道为什么,安全.简介.方便.我也说不清楚.我游戏玩的不多, ...

  3. jar包使用exe4j打成可双击运行的.exe文件和使用Inno Setup Compiler生成.exe安装包教程

    一.工具下载与准备 1.exe4j下载地址:链接:https://pan.baidu.com/s/156dLCKpIRDQdUZxKKvWjqA 提取码:q6fx 2.Inno Setup Compi ...

  4. 微信小程序反编译wxss文件缺失_反编译任何微信小程序和如何还原wxss

    首先需要了解一下微信小程序它执行是需要把源码下载到本地的,下载下来的是一个 .wxapk后缀的文件 ,那么问题来了.下载的源码在那? 这里我们以安卓为例(因为我没用过苹果手机,哈哈哈) 使用到的工具 ...

  5. vs怎么编译php文件,vscode怎么初始编译

    vscode怎么初始编译? 1.vscode语言环境改为中文 [WHY]才发现我的环境一直都是英文,来改一下吧... a.按下快捷键: Windows.Linux 快捷键是:ctrl+shift+p ...

  6. Android Studio 编译时报文件不能删除,编译失败

    在使用android studio 进行android 开发学习的时候,报android studio 无法删除app\build\outputs模块下部分文件,导致编译失败. 出现这种情况后,自己进 ...

  7. linux 编译c文件 arm,用arm-linux-gcc编译arm裸机程序(可调用库)

    CC=arm-linux-gcc      #换成arm-elf-gcc不行,可以生成flat格式的文件,但我不知道怎么转成binary LD=arm-linux-ld OBJCOPY=arm-lin ...

  8. babel编译html文件,babel 和 browserify 编译

    如何使用es6模块化? 使用起来其实非常简单 在 module1.js 中 var hello = 'hello world !'; function sayHello(){ console.log( ...

  9. java编译时文件是什么,JAVA编译出现 进行语法解释时已抵达文件结尾 是什么意思?...

    做了点小修改: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; ...

  10. python打包成exe其他电脑运行不了_将python文件打包成exe程序,复制到每台电脑都可以运行-exe是什么文件...

    将Python程序打包为exe文件,需要使用到的工具是pyinstaller pyinstaller是一个多平台的Python程序打包为exe的免费工具 安装pyinstaller: 在Windows ...

最新文章

  1. junit5_了解JUnit的Runner架构
  2. 程序员2004下载地址
  3. LeetCode Plus One
  4. python 爬虫面试题_Python爬虫面试题
  5. 为什么TCP连接要三次握手?
  6. SAP CRM产品主数据明细页面无法打开的调试步骤
  7. Html5学习笔记1 元素 标签 属性
  8. 第六十二节,html分组元素
  9. .NETCore_生成实体
  10. spring处理循环依赖时序图_Maven依赖管理系统
  11. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(9)...
  12. 问题匹配/文本匹配数据集(自用)
  13. 【外贸建站规则】外贸网站建站流程有哪些?需要注意什么? (上)
  14. oracle全量增量_数据上云,应该选择全量抽取还是增量抽取?
  15. 将ipa文件安装到手机的最简单方法和将ipa发布到appstore的方法
  16. ERROR: Error while obtaining start requests
  17. airsim:体验在虚幻世界中“自由飞行”
  18. UI设计师面试时必须注意的6大问题
  19. spring security中Authority、Role的区别
  20. C#《原CSharp》第三回 万文疑谋生思绪 璃月港口见清玉

热门文章

  1. linux命令检索字符串,用Linux的grep命令查找文件中符合条件的字符串
  2. 那些年我们一起用过的Hybrid App
  3. OD调试4----去除NAG窗口的几种方法
  4. 全国计算机vfp是什么,vfp是什么-你知VFP是什么东西吗?它是我们大学生必须上的计算机的一个章节的 爱问知识人...
  5. 新云php修改,MySQL_新云CMS防采集的代码修改,列表页修改: 打开INC目录下Ne - phpStudy...
  6. 计算机信息处理技术员初级难不难,考信息处理技术员之前,这些问题你要知道!...
  7. cobbler 部署
  8. 计算混响时间的意义_混响时间的测量方法和步骤
  9. Windows7集成SP1微软原版光盘镜像下载大全
  10. IT项目 软件研发最佳实践