AttributeError: у объекта «FrozenImporter» нет атрибута «имя файла» - PullRequest
0 голосов
/ 25 июня 2019

Я получаю следующую ошибку при запуске exe-файла, созданного из кодов plotly-dash с помощью PyInstaller.

AttributeError: 'FrozenImporter' object has no attribute 'filename'

Сделал некоторую углубленную проверку, смог определить только ошибку атрибута, которая произошла, когда dash пытается импортировать dash_renderer и извлечь имя файла из строки package.filename

Попытался добавить следующее, но все еще не смог решить

  1. добавлено импорт dash_renderer в мои коды
  2. скопировал папки пакета dash и dash_renderer в папку dist / {app} / *

Мои кодовые штрих-коды

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div(children=[
    html.H2(children='H-{} Meeting Dashboard'.format("SS"), style={'text-align':'center'}),
    html.Div(children=[
        html.Div('''Generated on {}'''.format(str(datetime.now())[:19]), style={'text-align':'center', 'font-size':'15px'})
        ], className='row')]
    )

if __name__ == "__main__":
    app.run_server(debug=True)

PyInstaller Коды, используемые для создания исполняемого файла

\path\to\python37\python.exe -m PyInstaller app_short.py

Ошибка при запуске файла .exe, ошибка ниже

my\directory>app_short.exe
2019-06-25 23:36:55 Imported all modules
Traceback (most recent call last):
  File "app_short.py", line 24, in <module>
  File "site-packages\dash\dash.py", line 1476, in run_server
  File "site-packages\dash\dash.py", line 1361, in enable_dev_tools
  File "site-packages\dash\dash.py", line 1359, in <listcomp>
AttributeError: 'FrozenImporter' object has no attribute 'filename'
[16716] Failed to execute script app_short

При запуске файла app_short.py удалось правильно запустить приложение фляги и получить доступ к html-странице, но exe продолжал показывать AttributeError.

\my\directory>app_short.py
2019-06-25 23:56:47 Imported all modules
Running on http://127.0.0.1:8050/
Debugger PIN: 313-047-004
 * Serving Flask app "app_short" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
2019-06-25 23:56:51 Imported all modules
Running on http://127.0.0.1:8050/
Debugger PIN: 074-068-565

Как мне исправить эту ошибку?

1 Ответ

0 голосов
/ 29 июня 2019

Я столкнулся с тем же сообщением об ошибке и решил его, изменив

if __name__ == "__main__":
    app.run_server(debug=True)

до

if __name__ == "__main__":
    app.run_server(debug=False)

Не уверен, почему это происходит или если запуск с debug=False даже возможен для ваших нужд! Может быть, кто-то еще может уточнить?

...