0


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文件了。

标签: python django pip

本文转载自: https://blog.csdn.net/qq_41985662/article/details/129321042
版权归原作者 Prom·otis 所有, 如有侵权,请联系我们删除。

“python项目打包成exe可执行文件(pyinstaller库)”的评论:

还没有评论