/pyinstaller_flask_pyechart

flask + pyechart with pyinstaller packing

Primary LanguageHTML

flask + pyecharts + pyinstaller 示例程序

  • 离线环境可运行
  • 直接将dist目录下的.exe复制到任意位置双击打开
  • 然后再浏览器输入地址http://127.0.0.1:5355/test
    • 不要用ip地址,因为test.html中已经将路由写为127.0.0.1

参考

对应html使用url_for连接到本地pychart

  • __init__.py中进行了如下设置
      if getattr(sys, 'frozen', False):
          template_folder = os.path.join(sys._MEIPASS, 'templates')
          static_folder = os.path.join(sys._MEIPASS, 'static')
          print(template_folder,static_folder)
          test_app = Flask(__name__, template_folder=template_folder, static_folder=static_folder)
      else:
          test_app = Flask(__name__)
    • 这样设置当程序打包为exe时url_for中有static便会找到该文件夹的本地绝对地址
  • 添加build.py在打包时候将静态文件打包
    • '--add-data', './app/static/js/*;static/js',添加js静态文件
  • .html中进行如下设置 用url_for去请求本地的静态资源
    • <script src="{{ url_for('static', filename='js/jquery.min.js') }}"></script>以便请求请求静态文件
  • resources 不知道是不是有用
    • Lib\site-packages中找到pyechart然后将datasetstemplates复制进去

目录结构

├─.venv │ ├─Include │ ├─Lib │ │ └─site-packages 各类包 │ │
│ └─Scripts ├─app │ ├─static │ │ ├─js │ │ └─pycharts-dep 作用不明 │ │
│ ├─templates │ └─__pycache__ ├─build pyinstaller ├─dist ├─resources │ ├─datasets │ │ └─__pycache__ │ └─templates └─__pycache__