IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【pyinstaller】打包方法介绍,以及一些报错的解决方法 -> 正文阅读

[Python知识库]【pyinstaller】打包方法介绍,以及一些报错的解决方法

一、打包方法

1、pyinstaler参数介绍

pyinstaller 各个参数:
-F, –onefile    打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用
-w,–windowed,–noconsole    使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效)
-D, –onedir    打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护
-K, –tk    在部署时包含 TCL/TK
-a,ascii    不包含编码.在支持Unicode的python版本上默认包含所有的编码.
-d, –debug    产生debug版本的可执行文件
-c,–nowindowed,–console    
–clean	在本次编译开始时,清空上一次编译生成的各种文件	默认:不清除
  • 其中-F, -w, –clean比较常用

2、打包单个.py文件

  • 注意,相关的引用的图片、html等文件需放在同一文件夹下
pyinstaller -F -w –clean xxx.py

3、打包多个.py文件

  • 用记事本打开xxx.spec,将相关文件都放到下图所框的列表中
  • 然后运行pyinstaller xxx.spec打包
    在这里插入图片描述

二、出现的问题

1、pandas打包时报错:RecursionError: maximum recursion depth exceeded while calling a Python object

(1)问题

- 使用pandas打包的时候,报了上述错误。
- 打包代码行:`pyinstaller -F .\excel_deal.py`

(2)原因

  • 似乎是pandas库递归遍历玩的太嗨了,超过了python的栈高度限制

(3)解决方法

  1. pyinstaller -F xxx.py
    这一步肯定会报上述错误导致失败,但是会产生一个xxx.spec文件

  2. 在xxx.spec文件中增加两行(添加在原文件第二行):

    import sys
    sys.setrecursionlimit(10000)
    
  3. pyinstaller -F xxx.spec打包成功。

2、如果出现如pandas、matplotlib、numpy无法导入的问题

  • 使用记事本打开xxx.spec文件,在hiddenimports=[]的方括号中,添加需要额外导入的包。
  • 在进行excel输入和输出时,记得导入'xlrd', 'xlwt'这两个未包含的包。
  • 然后输入pyinstaller -F xxx.spec打包成功。
    在这里插入图片描述

3、pyinstaller报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xce in position 118

  • 在pyinstaller打包前,cmd键入 chcp 65001
  • 重新打包,错误消失

三、打包的文件太大?用虚拟环境!

  • pyinstaller喜欢把没用的库一起打包进来

  • 所以要创建python虚拟环境,再打包,以免把不需要的包打进来

  1. 首先安装virtualenv
    pip install virtualenv
    
  2. 然后使用virtualenv创建一个干净的python虚拟环境
    virtualenv example_env  # 命名请随意
    
  3. 创建完成以后我们就会在python的Script文件夹里发现一个 与刚刚命名相同的文件夹
  4. cmd cd到虚拟环境的Script目录然后 输入activate回车
  • ps: Win10下 当第二次使用此环境报错时 应该用管理员模式打开powershell提权:
  1. 错误信息:
.\activate : 无法加载文件 H:\envproject\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,
请参阅 https:/http://go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。所在位置 行:1 字符: 1
  1. 解决办法:
    • 以管理员身份打开PowerShell
    • 执行命令set-executionpolicy remotesigned
  • 然后就可以开始愉快地pip安装必要模块 然后pyinstaller啦

Reference

  1. 打包时遇到pandas库报错处理
  2. 解决pyinstaller报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xce in position 118
  3. pyinstaller打包的坑,最重要(多个文件的打包)
  4. pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 11:50:39  更:2021-09-03 11:53:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 23:10:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计