首页 > 解决方案 > 几乎在那里使用 auto-py-to-exe 冲刺到 .exe

问题描述

我正在开发一个 Dash 应用程序,我希望能够通过可执行文件进行分发。我有两个文件“app.py”和“run.py”。“app.py”文件有一个提供输入/输出的 MS Access 数据库。“app.py”看起来如下..

    import dash
    import dash_html_components as HTML 
    import dash_core_components as dcc 
    import pyodbc
    import dash_table
    import pandas as pd

    conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ= 
    C:\Users\_file_name_.accdb;')
    cursor = conn.cursor()

    df = pd.read_sql_query('SELECT * FROM ', conn)

    def generate_table(dataframe, max_rows=10):
return html.Table(
    # Header
    [html.Tr([html.Th(col) for col in dataframe.columns])] +

    # Body
    [html.Tr([
        html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
    ]) for i in range(min(len(dataframe), max_rows))]
)
    app = dash.Dash()

    app.layout = html.Div(children=[
html.H4(children='Selection'),
dcc.Dropdown(id='dropdown', options=[
    {'label': i, 'value': i} for i in df.Name.unique()
], multi=True, placeholder='String...'),
html.Div(id='table-container')
   ])

   @app.callback(
dash.dependencies.Output('table-container', 'children'),
[dash.dependencies.Input('dropdown', 'value')])

   def display_table(dropdown_value):
if dropdown_value is None:
    return generate_table(df)

dff = df[df.Name.str.contains('|'.join(dropdown_value))]
return generate_table(dff)



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

我的“run.py”如下所示。

    import os

    os.system('app.py')

当我使用 auto-py-to-exe 工具时,它运行良好,可执行文件运行并提供 IP 地址和端口号。将此粘贴到我的浏览器中,我的应用程序将完美显示。当这个可执行文件在另一台计算机上运行时,我的问题就出现了。我得到...

    'app.py' is not recognized as an internal or external command, operable program or batch file.

所以我的问题是为什么它在本地运行,但在扩展到另一台计算机时却没有?任何帮助将不胜感激。

标签: pythonexeplotly-dash

解决方案


推荐阅读