cx_freeze включает css файл и изображение в приложении da sh - PullRequest
0 голосов
/ 29 марта 2020

У меня есть некоторые трудности с применением файла css к моему приложению da sh при использовании cx_freeze. Если я запускаю python app.py, то макет будет применен правильно, но не тогда, когда я выполняю .exe, сгенерированный cx_freeze. Затем отображается макет по умолчанию html. css и изображение появляются в том же каталоге, где находится .exe.

Вот так выглядит мой setup.py.

from setuptools import find_packages
from cx_Freeze import setup, Executable


options = {
    'build_exe': {
        'includes': [
            'cx_Logging', 'idna', 'idna.idnadata'
        ],
        'packages': [
            'asyncio', 'flask', 'jinja2', 'dash', 'plotly', 'waitress'
        ],
        'excludes': ['tkinter'],
        'include_files': [
          'assets/logo.jpg', 'assets/style.css'
        ],
    }
}

executables = [
    Executable('server.py',
               base='console',
               targetName='dash_app.exe')
]

setup(
    name='BI_Report',
    packages=find_packages(),
    version='0.0.1',
    description='rig',
    executables=executables,
    options=options
)

Для загрузки внешних файлов я использую вспомогательную функцию, как предложено здесь :

def find_data_file(filename):
    if getattr(sys, 'frozen', False):
        # The application is frozen
        datadir = os.path.dirname(sys.executable)
    else:
        # The application is not frozen
        # Change this bit to match where you store your data files:
        datadir = os.path.dirname(__file__)

    return os.path.join(datadir, filename)


app = dash.Dash(__name__,
                assets_folder=find_data_file('assets/'))

Я использую:

Python 3.7.6
dash 1.9.1
cx-freeze 6.1

Любая помощь высоко ценится!

...