使用pyinstaller打包exe文件遇到的问题总结

news/2024/5/19 22:50:47 标签: PyInstaller

我在windows+anaconda的前提下,使用pyinstaller将python程序打包成exe文件时陆续遇到很多问题,在这里总结一下。

pyinstaller介绍

首先安装pyinstaller,直接使用命令pip install PyInstaller即可。

安装好后,对于需要打包的文件,在该文件目录下使用类似如下命令即可。这里的xxx.py代表的是在程序中执行入口的py文件。

pyinstaller xxx.py

上面的命令没有加任何参数,pyinstaller的参数如下图。

遇到的问题汇总

1.首先要保证在编辑器里程序可以运行,并且在打包时要把程序关掉。

每次打包失败了以后最好吧spec文件删除掉,那是上一次打包遗留的文件。

还有就是程序里尽量不要用import,尽量用from…import…,使用import的话,在打包的时候会将整个包都打包到exe里面,从而使最终的包太大。

 

2.我一开始直接用cmd命令执行打包语句,遇到了ImportError问题,报错如下。

报错的意思是找不到某个DLL文件,这很奇怪,不可能是环境问题,因为在编辑器里可以正常运行。突然想到我使用的anaconda 的环境,于是打开anaconda prompt,再次执行打包语句,不再出现这个问题。

 

3.然而又出现了新的问题。。还是ImportError,报错如下。

第二句是在第一句的下面出现的。也就是在第271987个信息中,出现的import问题,解决这种问题就一个关键点:重装

比如我这里是在bokenh出现了问题,好的,把bokeh卸载了重装,问题就没有了。再出现这种问题就继续重装。

 

4.然而,还是不成功,又出现了下面的报错。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 130: invalid continuation byte

这是编码格式问题,解决方法就是先在控制台中输入 chcp 65001,然后在执行打包语句。

 

5.不出我所料,还是有问题!报错如下。

Pyinstaller:Exception: Cannot find PyQt5 plugin directories

意思很明白了,不多说了,安装PyQt5,已经安装了就重装一遍。

 

6.终于打包成了exe文件,就在项目文件的dist中,结果一运行,又出现了问题:

ModuleNotFoundError: No module named 'XXX'

因为我用了第三方库,解决的方法参考这个网址:https://blog.csdn.net/zyc121561/article/details/79562935

 

到这里终于成功了。。。有点心累


http://www.niftyadmin.cn/n/1193753.html

相关文章

如何通过页ID知道表名

如何通过页ID知道表名 通过后面这篇译文,我们大概也了解了前一篇译文的原理了。 如何通过页ID知道表名称呢? 在页头部有m_objid和m_indexId,通过这两者可以计算出分配单元ID(allocation unit id),然后通过查询就可以知…

LVS DR模式搭建、keepalived+LVS

LVS DR 模式搭建 准备工作 三台机器,三台机器均有公网IP。 调度器(director) IP:192.168.159.131 real server 1 (real1) IP:192.168.159.132 real server 2 (real2) I…

找规律+模拟 之 codevs 1160 蛇形矩阵

// [10/11/2014 Sjm] /* (数组下标默认从 1 开始) 经分析可知: 令 myNode ((n 1) >> 1), 则: myArr[myNode][myNode] 1^2myArr[myNode 1][myNode 1] (1 2)^2myArr[myNode 2][myNode 2] (3 2)^2…………据此可模拟生成过程。…

数据可视化练习——会议论文收录信息可视化与分析

一、问题简介 本文的内容围绕网站http://openaccess.thecvf.com/CVPR2018.py中所列的文献信息进行。该网站中可获取2018年的CVPR 论文的开放版本(由计算机视觉基金会提供)。对于这个网页上的论文标题与作者信息,需要通过爬虫技术将其整理在文本中,并对其进行预处理,包括分…

使用node脚本全自动删除豆瓣评论与帖子

前情提要最近由于转租房子的事情,搞得很疲惫,前期没考虑好就换了新的住处,导致需要自己转租以前的房子,不然房东不退押金啊;怎么办,转租呗,抄起家伙就是干,以前用过豆瓣小组转过房子…

现代软件工程 第一章 【概论】练习与讨论

1.像阿超那样&#xff0c;花二十分钟写一个能自动生成小学四则运算题目的“软件”&#xff0c;和同学们比较一下各自程序的功能、实现方法的异同等等。#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>int moshi;int count;void …

CSDN App产品分析报告

“成就一亿技术人”&#xff0c;这是CSDN App封面的标语。CSDN网站是一个面向IT技术人员的博客类网站&#xff0c;在互联网时代的背景下&#xff0c;成功获得了大批技术人用户。之后移动端App诞生&#xff0c;沿袭了网站中的大部分核心功能&#xff0c;在IT社区类App中占据相对…

UI: 使用 UIBarButtonItem 给导航栏添加按钮

问题: 希望将按钮添加到导航栏中 1.导航栏属于 UINavigationBar 类,你可以再任何时候创建它,并将它添加到任意的 view 中。 2.创建一个导航按钮,须要做一下工作: 创建一个 UIBarButtonItem 实例。 使用视图控制器的 navigationItem 属性将按钮添加到视图控制器的导航栏中,。 …