pyinstaller打包python工程记录

最近使用yolov5+pyqt5做了一个工程,尝试使用Pyinstaller发布包。
环境

  • win10
  • python3.10

创建一个pyinstaller的虚拟环境:

conda create -n pyinstaller python=3.10

激活环境,下载pyinstaller:

conda activate pyinstaller  
pip install Pyinstaller 

生成spec文件

pyi-makespec main.py

会生成对应的spec文件,然后我们对main.spec文件进行修改:

# -*- mode: python ; coding: utf-8 -*-

a = Analysis(
    ['main.py'], # 主程序入口,包含if __name__ == '__main__':的模块
    pathex=['D:\MySoft\Anaconda3\envs\pyqt5-yolo\Lib\site-packages'], # 依赖的库,我这个是将一个虚拟环境都打包进去了,这个环境是我为了这个工程创建的环境。
    binaries=[],
    datas=[('./data/*.txt', './data'),
    ('./data/*.yaml', './data'),
    ('./models/*.yaml', './models'),
    ('./resources/*', './resources'),
    ('./weights/*.pt', 'weights')],  # 资源文件
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='main',# 生成的应用程序的名称
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=True,# 是否显示控制台,True是显示,False是不显示
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)
coll = COLLECT(
    exe,
    a.binaries,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='main',
)

编译

pyinstaller .\main.spec   

等待一段时间按后,会在当前目录下生成一个build和dist文件夹,dist文件夹中会有一个main的文件夹,他包含一个main.exe的应用程序和一个_internal文件夹,这个_internal文件夹包含工程所需要的所有环境动态库。完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值