pyinstaller最简单教程

pyinstaller网上一堆教程,却很多看的云里雾里的。踩完坑来写一下。没有废话。

-D 生成有文件夹的程序(推荐,方便排错)

-w 无控制台模式(有时候没什么卵用,还是有控制台,跟打包的系统有关系)

找到运行的主文件main.py,运行:

pyinstaller -D -w main.py

如果项目有很多文件夹而不是单个的py的文件,打包通常不能一次完成,需要编辑运行生成的main.spec文件,编辑完运行 pyinstaller  main.spec

main.spec部分内容:

a = Analysis(
    ['main.py'],
    pathex=["D:\Documents\Downloads\myProject"],
    binaries=[],
    datas=[('a.html','.'),('b','.'),('folder/*','folder')],
    hiddenimports=["PyQt5.sip"],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)
a.datas=a.datas+Tree("./static",prefix='static')+Tree("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/Lib/site-packages/py2neo",prefix="py2neo")+Tree("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/Lib/site-packages/jieba",prefix="jieba")

跟main.py同目录的文件,或者目录下面只有一层文件的,可以在datas里面手动写文件。

datas下导入的并不是整个文件夹内的东西,它只是根据选择去导入。如果有个static的文件,里面是一堆不同开源项目的js或者css的包,想原封不动的导入那只能用Tree。

pyinstaller最常见的问题是打包完,运行说缺少这个,缺少那个,最省事的方法是到/Python/Lib/site-packages/里找到那个包,然后整个路径写到Tree里面。

如果打包遇到permit error,终端已经是管理员权限的话,就把python文件夹的权限改一下,把[只读]后面的勾去掉。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyInstaller是一个强大的工具,用于将Python应用程序打包成独立的Windows、Mac OS X和Linux可执行文件,无需用户安装额外的Python环境。以下是PyInstaller的全面教程概述: 1. **安装PyInstaller**: - 官方网站下载:访问<https://www.pyinstaller.org/downloads.html> 下载适合系统的二进制包。 - 或者通过pip安装:`pip install pyinstaller` 2. **基本用法**: - 使用命令行:`pyinstaller [your_script.py]`,这里是你想要打包的Python脚本名。 3. **构建spec文件** (可选): PyInstaller默认会生成一个.spec文件,这是配置信息的地方。你可以手动编辑它来定制打包过程。 4. **运行和打包**: - 如果没有指定其他选项,PyInstaller会直接编译脚本并创建一个dist目录,包含打包后的程序。 - 使用`--onefile`或`--onedir`选项分别生成单个可执行文件或自包含目录。 5. **处理依赖库**: - 如果你的程序有外部库,需要在`requirements.txt`中列出,并使用`--hidden-import`添加到.spec文件。 - 对于某些库,可能需要提供`hook`模块来处理。 6. **调试和优化**: - `--debug`用于保持临时文件以便调试,而`--noconfirm`可以避免交互式确认操作。 7. **签名和保护**: Windows用户可以使用signtool对可执行文件进行数字签名,增强安全性和信任度。 8. **常见问题**: - 检查是否有冲突的库版本或名称。 - 使用`--collect-submodules`收集所有导入的模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值