Я пытаюсь упаковать приложение-черточку в один 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"))
Это дает мне путь к текущему рабочему каталогу / assets. Он работает в среде Anaconda, а также в .exe, давая мне правильный путь в консоли.
Но в следующей части я столкнусь с неприятностями:
# create app
app = dash.Dash(__name__, assets_url_path=resource_path("assets"))
Как правило, assets_url_path=
может использоваться для установки пути ресурса для приложений-черточек. В частности, мой файл CSS для форматирования хранится здесь, но он должен быть одинаковым для любого ресурса. Однако по некоторым причинам ресурсы не используются в версии приложения pyinstaller, несмотря на то, что print(resource_path("assets"))
показывает правильный путь в системном каталоге Temp
. Я даже могу перемещаться туда и видеть мой styles.css
, но каким-то образом тире не поднимает его.
Что меня смущает, так это то, что точно такой же код прекрасно работает в моей среде анаконды. Единственная разница должна заключаться в том, что временный путь - это мой домашний каталог. Что мне здесь не хватает?