拉格朗晶 发表于 2022-2-24 20:08:05

如何在局域网下 用pyinstaller 打包 pyecharts 生成的文件 ?

各位大神求助!!!

本人想在局域网的环境下编一个pyecharts生成的应用。
但pyecharts生成的html文件都是基于浏览器打开的,
之前用"render_embed()",发现可以打包成功,但打开应用是空白。
之后尝试用“render()”,还是不能成功。
穷途末路,在此求教网络上的大神帮忙解决!

代码如下:
import sys,os
from PySide2 import QtCore
from PySide2 import QtWidgets
from PySide2.QtGui import *
from PySide2.QtCore import *
from pyecharts.charts import Bar
from PySide2.QtWidgets import *
from pyecharts import options as opts
from PySide2.QtUiTools import QUiLoader
from pyecharts.globals import CurrentConfig
from PySide2.QtWebEngineWidgets import QWebEngineView

from ui_14 import *#Pyside2生成的py文件

class Form(QWidget, Ui_Form):
    def __init__(self, parent = None):
      CurrentConfig.ONLINE_HOST = os.getcwd()+'/'+'pyecharts/pyecharts-assets/assets/'
##      # os.getcwd() 返回当前文件路径
      super(Form, self).__init__(parent) # 调用父类的方法
      self.setupUi(self)
      
      x = [ 'a1','b1','c1' ]
      y1 = [ 1240,524,270 ]
      y2 =
      bar = Bar(init_opts=opts.InitOpts(width=str(500) + "px",height=str(400) +'px'))
##      bar = Bar(init_opts=opts.InitOpts())
      bar.add_xaxis(xaxis_data=x)
      bar.add_yaxis(series_name='A',y_axis=y1)
      bar.add_yaxis(series_name='B',y_axis=y2)
      bar.set_global_opts(title_opts=opts.TitleOpts(title='示例'))
      
      bro = QWebEngineView()
      html_path=os.getcwd()+'/'+'chart22.html'
      bar.render(html_path)
      bro.setUrl(QUrl(html_path.replace('\\','/')))
      self.scrollArea.setWidget(bro)
      print()
   
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    widget = Form()
    widget.show()
    sys.exit(app.exec_())



上面代码中的ui_14.py文件代码如下:
import sys,os
from PySide2 import QtCore
from PySide2 import QtWidgets
from PySide2.QtGui import *
from PySide2.QtCore import *
from pyecharts.charts import Bar
from PySide2.QtWidgets import *
from pyecharts import options as opts
from PySide2.QtUiTools import QUiLoader
from pyecharts.globals import CurrentConfig
from PySide2.QtWebEngineWidgets import QWebEngineView

from ui_14 import *

class Form(QWidget, Ui_Form):
    def __init__(self, parent = None):
      CurrentConfig.ONLINE_HOST = os.getcwd()+'/'+'pyecharts/pyecharts-assets/assets/'
##      # os.getcwd() 返回当前文件路径
      super(Form, self).__init__(parent) # 调用父类的方法
      self.setupUi(self)
      
      x = [ 'a1','b1','c1' ]
      y1 = [ 1240,524,270 ]
      y2 =
      bar = Bar(init_opts=opts.InitOpts(width=str(500) + "px",height=str(400) +'px'))
##      bar = Bar(init_opts=opts.InitOpts())
      bar.add_xaxis(xaxis_data=x)
      bar.add_yaxis(series_name='A',y_axis=y1)
      bar.add_yaxis(series_name='B',y_axis=y2)
      bar.set_global_opts(title_opts=opts.TitleOpts(title='示例'))
      
      bro = QWebEngineView()
      html_path=os.getcwd()+'/'+'chart22.html'
      bar.render(html_path)
      bro.setUrl(QUrl(html_path.replace('\\','/')))
      self.scrollArea.setWidget(bro)
      print()
   
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    widget = Form()
    widget.show()
    sys.exit(app.exec_())



救救孩子吧!!!

isdkz 发表于 2022-2-24 20:25:03

这跟网络有什么关系吗?

拉格朗晶 发表于 2022-2-24 20:27:55

isdkz 发表于 2022-2-24 20:25
这跟网络有什么关系吗?

你可以试一下用pyinstaller打包,总是不成功。。。

ba21 发表于 2022-2-24 23:48:41

不成功有提示?
还是打包后运行没有达到正常效果?

拉格朗晶 发表于 2022-2-28 16:08:31

ba21 发表于 2022-2-24 23:48
不成功有提示?
还是打包后运行没有达到正常效果?

打包可以顺利打包,但是打开程序的时候报错

Failed to execute script '文件名' due to unhandled exception: simple_chart.html

ba21 发表于 2022-2-28 18:36:29

拉格朗晶 发表于 2022-2-28 16:08
打包可以顺利打包,但是打开程序的时候报错

Failed to execute script '文件名' due to unhandled e ...

估计是打包前后路径问题 。
http://1118pc.com/show_pdetails.asp?id=1010
这里找下
页: [1]
查看完整版本: 如何在局域网下 用pyinstaller 打包 pyecharts 生成的文件 ?