当前位置: 首页 > news >正文

青岛制作网站云南建设厅查证网站

青岛制作网站,云南建设厅查证网站,宁波论坛网,网站开发的方法有哪些py文件打包为exe可执行文件,涉及mysql连接失败以及找不到json文件 项目场景:使用flask框架封装算法接口,并使用pyinstaller打包为exe文件。使用pyinstaller打包多文件的场景,需要自己手动去.spec文件中添加其他文件,推…

py文件打包为exe可执行文件,涉及mysql连接失败以及找不到json文件


项目场景:使用flask框架封装算法接口,并使用pyinstaller打包为exe文件。使用pyinstaller打包多文件的场景,需要自己手动去.spec文件中添加其他文件,推荐使用auto-py-to-exe,有可视化界面,比较方便,直接添加文件就行。


问题描述

问题1、算法本地运行,使用postman传参,mysql能够连接数据库成功。当打包成exe文件后,exe文件运行失败。
问题2、json文件已经包含在打包文件中,还是提示找不到。
错误显示
1、mysql连接失败,提示mysql.connector出现问题。
2、找不到json对应的文件路径


原因分析:

问题1、远程连接mysql库时,使用mysql-connector-python库,这个库可能与pyinstaller不兼容,导致连接频繁失败,找了一些相关的文章没有涉及,记录一下。
问题2、因为程序在运行时未能正确定位文件路径 ,即使文件被打包到了输出目录中,程序运行时的工作目录(os.getcwd())可能与你预期的不同。
例如:
在开发环境中,工作目录通常是脚本所在的目录。
在打包后的程序中,工作目录可能是用户启动程序的目录(如桌面或其他位置),而不是可执行文件所在的目录。


解决方案:

问题1解决方法:
使用纯 Python 实现的驱动程序:PyMySQL

pip install PyMySQL

然后在python中导入pymysql

import pymysql

这样可以避免 mysql.connector 中的复杂依赖问题。

问题2解决方法:
使用 sys._MEIPASSos.path.dirname(sys.executable) 获取程序的真实路径。

import os
import sysdef get_resource_path(relative_path):"""获取资源文件的绝对路径"""if hasattr(sys, '_MEIPASS'):# PyInstaller 生成的临时目录base_path = sys._MEIPASSelse:# 开发环境下的路径base_path = os.path.dirname(os.path.abspath(__file__))return os.path.join(base_path, relative_path)# 示例:读取 JSON 文件
def read_from_json(path):full_path = get_resource_path(path)if not os.path.exists(full_path):raise FileNotFoundError(f"File not found: {full_path}")with open(full_path, 'r', encoding='utf-8') as file:return file.read()

在代码中调用 read_from_json("all_data_update.json") 时,get_resource_path 会自动处理路径问题。

关于auto-py-to-exe使用


安装和运行:

pip install auto-py-to-exe
auto-py-to-exe

可视化界面:
可视化UI界面

http://www.dtcms.com/a/486436.html

相关文章:

  • 自己怎么做外贸英文网站大型电商网站开发成本
  • 论文理解 【LLM-回归】—— Decoding-based Regression
  • DeepSeek使用教程
  • 青龙 定时任务管理平台
  • csdn手机app应该增加导入word格式markdown格式,或者输入网址自动导入
  • K8s学习笔记(二十) 亲和性、污点、容忍、驱逐
  • 培训餐饮网站建设dede 分类信息网站 模板
  • 硅基计划4.0 算法 二叉树深搜(DFS)
  • 深度学习------目标检测项目
  • 【MySQL】数据库表的CURD(二)
  • 计算机视觉--opencv---如何识别不同方向图片的识别(一)
  • 互联网大厂Java求职面试全景实战解析(涵盖Spring Boot、微服务及云原生技术)
  • Linux使用Docker部署Node.js+Express+SQLite项目
  • 如何自己开网站济南做平台网站的
  • STM32H743-ARM例程21-DSP
  • Linux下编译CGAL
  • 十五、OpenCV中的图像浮雕技术
  • 网站建设的搜索栏怎么设置重庆市建设工程信息网官网施工许可证查询
  • Effectively Using Public Data in Privacy Preserving Machine Learning
  • 国产电脑操作系统与硬盘兼容性现状分析:挑战与前景评估
  • 从 DAG 到 Shuffle:掌握 Spark RDD 宽窄依赖的调优密码
  • 48 元四核 ARM 核心板!明远智睿 2351 进入嵌入式市场
  • 李宏毅机器学习笔记23
  • 为何打不开中国建设银行网站深圳品牌营销策划机构
  • 大连旅顺网站制作有哪些网站可以做笔译
  • 【遥感图像处理】遥感图像车辆检测与跟踪全流程实战:从数据到部署(含Python代码)
  • PPO论文阅读
  • C++学习:异常及其处理
  • 无人机组队编队与相对定位原理详解
  • 两学一做网站登录沈阳网站设计外包