浅谈打包

打包的目的:

  1. 生成exe可执行文件,方便他人使用
  2. 编译后再打包,加快运行速度,提高反编译难度

打包的流程:

  1. 使用Cython将除入口文件外的py文件编译为pyd文件
  2. 修改pyd文件的文件名,使之除了后缀pyd与源文件py不同,其他都一致
  3. 在入口的py文件中import其他py文件所有import的包
  4. 使用pyinstaller进行打包
  1. 如果有启动不了,取消-w参数进行打包,通过命令行启动排错

使用Cython将py文件编译为pyd文件

  1. 创建build_pyd.py文件:
from distutils.core import setup
from Cython.Build import cythonize

setup(
    name='words you want',
    ext_modules=cythonize(["xxx1.py", "xxx2.py"], language_level=3),
)
  1. 编译py文件:
python build_pyd.py build_ext --inplace

使用pyinstaller进行打包

  1. 在入口的py文件中import其他py文件所有import的包
  2. 开始打包:

打包为文件夹:

pyinstaller -D -w -i xxx.ico xxx.py

打包为单文件:

pyinstaller -F -D -w -i xxx.ico xxx.py

排错

  1. 删除打包生成的所有目录及其文件:


    1. bulid目录
    2. dist目录
    3. xxx.spec文件
  2. 重新打包,不要使用-w参数:
pyinstaller -D -i xxx.ico xxx.py

或者

pyinstaller -F -D -i xxx.ico xxx.py
  1. 命令行启动打包后的exe文件,根据提示信息进行排错即可:
cmd /k xxx.exe
最后修改:2023 年 08 月 26 日
如果觉得我的文章对你有用,请随意赞赏