鱼C论坛

 找回密码
 立即注册
查看: 2198|回复: 9

[已解决]pyinstaller转成exe怎么都不成功,有大神帮帮忙吗?

[复制链接]
发表于 2020-3-3 14:24:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是代码
  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. # author: ricia
  4. import openpyxl
  5. import tkinter as tk
  6. import pyecharts.options as opts
  7. from tkinter import filedialog
  8. from pyecharts.charts import Line

  9. # 主窗口
  10. window = tk.Tk()
  11. window.title('Excel绘图小程序')
  12. window.geometry('600x400')

  13. # 收集用户数据
  14. var_min_row = tk.IntVar()
  15. var_max_row = tk.IntVar()
  16. var_min_col = tk.IntVar()
  17. var_max_col = tk.IntVar()
  18. var_x_number = tk.IntVar()
  19. var_y_number = tk.IntVar()
  20. tk.Label(window, text='开始行号:', font=14).place(x=20, y=50)
  21. min_row = tk.Entry(window, textvariable=var_min_row, show=None, font=('Arial', 14), width=8).place(x=120, y=50)

  22. tk.Label(window, text='结束行号:', font=14).place(x=20, y=80)
  23. max_row = tk.Entry(window, textvariable=var_max_row, show=None, font=('Arial', 14), width=8).place(x=120, y=80)

  24. tk.Label(window, text='开始列号:', font=14).place(x=20, y=110)
  25. min_col = tk.Entry(window, textvariable=var_min_col, show=None, font=('Arial', 14), width=8).place(x=120, y=110)

  26. tk.Label(window, text='结束列号:', font=14).place(x=20, y=140)
  27. max_col = tk.Entry(window, textvariable=var_max_col, show=None, font=('Arial', 14), width=8).place(x=120, y=140)

  28. tk.Label(window, text='选中区域后,指定X,Y在新区域对应的列', font=12).place(x=20, y=200)

  29. tk.Label(window, text='绘图x轴列数:', font=14).place(x=20, y=240)
  30. x_number = tk.Entry(window, textvariable=var_x_number, show=None, font=('Arial', 14), width=8).place(x=150, y=240)

  31. tk.Label(window, text='绘图y轴列数:', font=14).place(x=20, y=270)
  32. y_number = tk.Entry(window, textvariable=var_y_number, show=None, font=('Arial', 14), width=8).place(x=150, y=270)

  33. # 提示消息显示框
  34. var = tk.StringVar()
  35. message = tk.Label(window, textvariable=var, bg='green', fg='white', font=('Arial', 12), width=30, height=3)
  36. message.place(x=280, y=80)

  37. # 读取文件数据
  38. def open_file():
  39.     global file_path
  40.     global x_data
  41.     global y_data

  42.     # 初始化
  43.     file_path = ''
  44.     x_data = []
  45.     y_data = []

  46.     # 获取用户输入的值
  47.     min_row = var_min_row.get()
  48.     max_row = var_max_row.get()
  49.     min_col = var_min_col.get()
  50.     max_col = var_max_col.get()
  51.     x_number = var_x_number.get()
  52.     y_number = var_y_number.get()

  53.     # 判断数据是否都已经输入
  54.     if min_row and max_row and min_col and max_col and x_number and y_number != None:

  55.         # 选择需要打开的文件
  56.         file_path = filedialog.askopenfilename()

  57.         # 检测文件格式是否是openpyxl支持打开的格式
  58.         file_type =['xlsx','xlsm','xltx','xltm']
  59.         if str(file_path).split('.')[1] in file_type:
  60.             # 打开文件
  61.             wb = openpyxl.load_workbook(file_path)
  62.             # 获取excel文件的第一个工作表
  63.             ws = wb[wb.sheetnames[0]]
  64.             # 读取数据
  65.             for each_row in ws.iter_rows(min_row=min_row, min_col=min_col, max_row=max_row, max_col=max_col):
  66.                 x_data.append(each_row[x_number-1].value)
  67.                 y_data.append(each_row[y_number-1].value)
  68.                 var.set('文件已读取成功!')
  69.         else:
  70.             var.set('请输入Excel格式!')
  71.     else:
  72.         var.set('请先输入所有行列号!')

  73. # 打开文件按钮
  74. open_bt = tk.Button(window, text='打开文件', font=14, width=15, height=2, command=open_file).place(x=350,y=240)

  75. # 画平滑折线图
  76. def line_draw():
  77.     # js_host 生成html文件本地读取js文件用  可以不设置
  78.     line = Line(init_opts=opts.InitOpts(js_host='../js/', width='1000px'))
  79.     line.add_xaxis(x_data)
  80.     line.add_yaxis('S/Ø', y_data, is_smooth=True)
  81.     # 全局设置
  82.     line.set_global_opts(toolbox_opts=opts.ToolboxOpts(),
  83.                          datazoom_opts=opts.DataZoomOpts(range_start=0,range_end=100),
  84.                          tooltip_opts=opts.TooltipOpts(trigger='axis'),
  85.                          xaxis_opts=opts.AxisOpts(
  86.                              axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
  87.                              is_scale=False,
  88.                              boundary_gap=False,
  89.                              name='时间'
  90.                          ))
  91.     # 系列设置
  92.     line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  93.     picture = line.render('draw.html')
  94.     var.set('绘图完成!')
  95.     return picture
  96. # 绘图按钮
  97. draw_bt = tk.Button(window, text='开始绘图', font=14, width=15, height=2, command=line_draw).place(x=350,y=300)

  98. # 主窗口循环
  99. window.mainloop()

复制代码
最佳答案
2020-3-3 15:00:51

最后扔给我一个报错信息,
Failed to execute script test
是和pyecharts有关,建议你看看使用到pyecharts
的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-3 14:28:48 | 显示全部楼层
试试这行命令:
  1. pyinstaller -F wenjianm.py
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 14:32:02 | 显示全部楼层

命令用过了就是运行生成的exe的时候运行不了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 14:37:18 | 显示全部楼层
ricia 发表于 2020-3-3 14:32
命令用过了就是运行生成的exe的时候运行不了

我打包一下试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 14:45:20 | 显示全部楼层

那麻烦了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 15:00:51 | 显示全部楼层    本楼为最佳答案   

最后扔给我一个报错信息,
Failed to execute script test
是和pyecharts有关,建议你看看使用到pyecharts
的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 15:06:48 | 显示全部楼层
qiuyouzhi 发表于 2020-3-3 15:00
最后扔给我一个报错信息,
Failed to execute script test
是和pyecharts有关,建议你看看使用到pyecha ...

整个line_draw函数里面用的是pyecharts  ,我在看看,谢谢了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 15:08:06 | 显示全部楼层
ricia 发表于 2020-3-3 15:06
整个line_draw函数里面用的是pyecharts  ,我在看看,谢谢了!

嗯嗯
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 15:13:47 | 显示全部楼层

谢谢,你一提醒我去看了一下pyinstaller支持的模块
它好像不支持pyecharts
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 15:15:02 | 显示全部楼层
ricia 发表于 2020-3-3 15:13
谢谢,你一提醒我去看了一下pyinstaller支持的模块
它好像不支持pyecharts

哦豁
那你只能换个模块了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-1 12:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表