【发布时间】:2019-04-09 16:03:02
【问题描述】:
我正在尝试将 dash 应用程序打包到单个 pyinstaller .exe 中,但遇到了一些麻烦,包括 assets 文件夹。
这是我到目前为止所做的:
# get temp working directory
import sys
import os
def resource_path(relative_path):
# get absolute path to resource
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
print(resource_path("assets"))
这为我提供了当前工作目录/资产的路径。它可以在 anaconda 环境和 .exe 中工作,在控制台中为我提供了正确的路径。
但是下一部分是我遇到麻烦的地方:
# create app
app = dash.Dash(__name__, assets_url_path=resource_path("assets"))
通常,assets_url_path= 可用于设置 dash 应用的资产路径。具体来说,我在这里存储了用于格式化的 css 文件,但对于任何资产,它都应该是相同的过程。然而,出于某种原因,尽管print(resource_path("assets")) 在系统的Temp 目录中显示了正确的路径,但这些资产并未在应用程序的 pyinstaller 版本中使用。我什至可以导航到那里并查看我的styles.css,但不知何故,dash 无法识别它。
让我感到困惑的是,完全相同的代码在我的 anaconda 环境中运行良好。唯一的区别应该是临时路径是我的主目录。我在这里错过了什么?
【问题讨论】:
标签: python python-3.x pyinstaller plotly-dash