python 编写windows的exe程序

python 打包windows的exe程序

1.工具与准备工作

这里使用PyCharm码代码,pyinstall打包
为了打包的大小,使用 Pipenv 最小化安装一个打包环境

  • 1.安装 pipenv
pip install pipenv
  • 2.新建目录做为环境目录,进入目录cmd下,安装对应python版本。这里是3.7
pipenv install --python 3.7
  • 3.激活环境
pipenv shell
  • 4.安装所需依赖的库
pipenv install pyinstaller
pipenv install openpyxl
...
  • 5.查看安装包
pip list

2. 打包

1.生成spec文件
# -w
pyi-makespec -w xxx.py

spec文件中主要包含4个class: Analysis, PYZ, EXE和COLLECT.

  • Analysis以py文件为输入,它会分析py文件的依赖模块,并生成相应的信息
  • PYZ是一个.pyz的压缩包,包含程序运行需要的所有依赖
  • EXE根据上面两项生成
  • COLLECT生成其他部分的输出文件夹,COLLECT也可以没有
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py','D:\\py_workspace\\auto\\util\\Auto.py','D:\\py_workspace\\auto\\util\\FrontWindow.py','D:\\py_workspace\\nan_auto\\util\\ReadExcel.py'],  #包含的其他py文件,注意全路径
             pathex=['D:\\py_workspace\\auto'],
             binaries=[],
             datas=[('D:\\py_workspace\\auto\\data','data')],  #包含的目录
             hiddenimports=[],
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=['gevent'],   #排除的package 
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts, 
          [],
          exclude_binaries=True,
          name='main',  #打包后exe 名
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas, 
               strip=False,
               upx=True,
               upx_exclude=[],
               name='main')
2.开始打包
pyinstaller -w --clean main.spec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值