pyinstaller 打包 ! pyinstaller 打包路径问题!wordcloud打包缺失stopwords文件

news/2025/1/12 6:13:56/

wordcloud打包缺失stopwords文件

错误描述

Unhandled exception in script
Failed to execute script'main' due to unhandled exception: (Errno 2] No such file or directory:
'C:\Users\VADMINI\appDatallLocal\Templ\2\ME186322\wordcloud\stopwords'

在这里插入图片描述

解决办法

找到安装wordcloud的路径下
默认在你python安装路径下的lib的这个文件夹下的wordcloud.py
在这里插入图片描述
打包时将以下代码

STOPWORDS = set(map(str.strip, open(os.path.join(FILE, 'stopwords')).readlines()))

改为

STOPWORDS = set(map(str.strip, open(os.path.join(os.path.dirname(sys.executable), 'stopwords')).readlines()))

改成是在执行exe程序时会去exe文件下的同级下寻找stopwords这个文件
可根据自己的配置需求更改文件位置,如下

STOPWORDS = set(map(str.strip, open(os.path.join(os.path.dirname(sys.executable), 'config','stopwords')).readlines()))

执行exe程序时会去exe文件下的同级目录下寻找config目录下stopwords这个文件

!!!开发环境时需要还原回去,或者保证你的stopwords文件可以在运行能被找到

pyinstaller 打包路径问题

python将资源文件一起打包进exe 讲解(有算例)

本人直接使用下边方法进行路径映射,将项目里的配置文件,直接拷贝一份到与exe文件同级目录下

import os
import sysdef file_address():if getattr(sys, "frozen", False):BASE_DIR = os.path.dirname(sys.executable)else:BASE_DIR = os.path.dirname(os.path.abspath(__file__))return BASE_DIR

pyinstaller 打包

需要运用的库

pip install pyinstaller

单个文件打包

cmd进入py项目目录,执行命令:

pyinstaller -F -w -i xxx.ico main.py --noconsole

或者:

pyinstaller -F -w --icon=xxx.ico main.py --noconsole

-F参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,固定命令。
-w表示窗体程序,
–icon是设置exe的显示图标,*.ico文件可以到网上ico矢量图在线转换工具处理。
'main.py’是程序的入口(如果是单个文件就换成文件名,如:hello.py),
–noconsole 表示不展示cmd窗口,反过来想看cmd窗口就改成–console。
常用打包命令:
打包exe:pyinstaller -F main.py
不带控制台的打包:pyinstaller -F -w main.py
打包指定exe图标打包:pyinstaller -F -i xx.ico main.py

多个文件打包

cmd进入py项目目录,执行命令:

pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]

如下:

pyinstaller -F -w --icon=testIcon.ico main.py -p addres.py -p test1.py -p test2.py --hidden-import addres --hidden-import test1 --hidden-import test2

打包成功

在这里插入图片描述
会在项目根目录下生成一下两个文件夹
在这里插入图片描述
在dist文件夹下会有一个xxx.exe,名字根据你打包的主文件.py进行命名,双击执行即可。
!!!若有配置文件的需要先将配置文件按照开发项目的目录结构先考呗一份到与exe同级目录下。

据说使用Anaconda虚拟环境可以减少exe文件体积,目前没有使用过,有兴趣可以自行探索


http://www.ppmy.cn/news/87355.html

相关文章

SpringCloud Eureka 的详细讲解及示意图

目录 SpringCloud Eureka 服务注册与发现 Spring Cloud 组件选型- 图 当前项目架构问题分析-引出Eureka 一图胜千言 问题分析 引入Eureka 项目架构 解读上图 Eureka采用了 CS 的设计架构, 创建单机Eureka Server-注册中心 创建e-commerce-eureka-server-90…

springboot入门简单使用

springboot入门简单使用 1、SpringBoot项目创建并配置mysql数据库创建项目编写Controller测试配置数据库 2、SpringBoot集成mybatis-plus初始化数据库安装mybatis-plus通过mybatis-plus将数据库数据通过接口显示 3、SpringBoot三层架构Controller、Service、Dao4、SpringBoot集…

C#里使用关键字做临时变量的方法

如果遇到一些临时变量,非要采用关键字的方式来做临时变量, 就可以采用下面的方法。 比如OpenRA里的代码: public static IPathSearch FromPoint(World world, Locomotor locomotor, Actor self, CPos @from, CPos target, BlockedByActor check){return FromPoints(world,…

useMemo和useCallback到底要怎么用

useMemo 和 useCallback 是 React 的内置 Hook,通常作为优化性能的手段被使用。他们可以用来缓存函数、组件、变量,以避免两次渲染间的重复计算。但是实践过程中,他们经常被过度使用:担心性能的开发者给每个组件、函数、变量、计算…

约瑟夫问题的环形链表实现[Java]

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁…

Java设计模式-备忘录模式

简介 在软件开发中,设计模式是为了解决常见问题而提出的一种经过验证的解决方案。备忘录模式(Memento Pattern)是一种行为型设计模式,它允许我们在不破坏封装性的前提下,捕获和恢复对象的内部状态。 备忘录模式是一种…

【CCF- CSP 202104-2 邻域均值 二维数组前缀和满分题解】

代码思路: 本题如果直接用暴力求解的话只能得70分。 运用到了二维数组的前缀和,难点是如何求出二维数组的前缀和并计算出领域所有元素的和。 注意计算平均数的时候要保证精度相同,所有都要化为double型,否则会出错。 首先&…

iptables 讲解

文章目录 简介1. 什么是 iptables?2. iptables 的工作原理3. iptables 的基本概念链 (Chain)表 (Table)规则 (Rule) 4. iptables 的安装和配置5. 常见的 iptables 命令iptables 的基本语法添加规则删除规则查看规则 6. iptables 的规则匹配匹配条件匹配选项匹配动作…