python项目打包成exe可执行文件(pyinstaller库)

前言:才入职新公司;进来工作内容,就是将之前的python脚本项目打包成.exe可执行文件;一来方便不同岗位的同事之间使用,二来源码信息不会改动和泄漏。

正因为python具有丰富的第三方库,目前已有数万之多;这里用到的是 'pyinstaller'库;

正文:

两种情况:Ⅰ、单独一个py文件打包成exe,Ⅱ、整个项目或者多个py打包成exe;

一、Python环境(不做介绍)

二、win+r 输入md,进入’命令提示符‘

在命令窗口安装pyinstaller包:pip install pyinstaller

三、安装好pyinstaller库后

Ⅰ、单独一个py文件打包成exe

我这里以打包buildsDemo项目为例,将main.py打包成.exe可执行文件

①:进入需要打包成exe的main.py文件夹下输入'cmd' 进入'命令提示符中';

②:输入:pyinstaller -F -i 013.ico main.py

-F:打包后只生成单个exe格式文件,启动较慢;

-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件,启动较快;

-c:默认选项,使用控制台(就是类似cmd的黑框);

-w:不使用控制台;

-p:添加搜索路径,让其找到对应的库;(多数图片格式都行)

-i:改变生成程序的icon图标。

出现:Building EXE from EXE-00.toc completed successfully.

执行成功后,生成两个文件夹(build、dist)和一个.spec文件(main.spec)

dist文件夹下,就是已生成好的exe文件了

Ⅱ、整个项目或者多个py打包成exe;

注意:多个文件打包方法==》先打包一个py;在修改打包后生成的spec文件;

以上述Ⅰ中为例前提:

①:删除build、dist文件夹;只保留main.spec文件

②:编辑main.spec;将其它需要打包的py加入到 Analysis中:

===修改前:

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


block_cipher = None

a = Analysis(
    [main.py],
    ...省略相同代码...
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    ...省略相同代码...
    console=True,
    ...省略相同代码...
)

===修改后:

③:注意:如果项目有界面,不需要黑色窗口,需将main.spec文件中的console=true 改为console = False(默认为True)

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


block_cipher = None

py_files = [
    'tools\\add_ip.py',
    'tools\\get_data.py',
    'log.py',
    'main.py',
    'utils.py',
]

a = Analysis(
    py_files,
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    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,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='main',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['013.ico'],
)

④:修改完成后,执行命令:pyinstaller main.spec;执行成功后

再次生成build、dist文件夹。dist下的exe便是项目的exe文件了。

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值