Я работаю над приложением Da sh, которое я хотел бы распространять через исполняемый файл. У меня есть два файла "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.
Итак, мой вопрос: почему это происходит локально, а не при распространении на другой компьютер? Любая помощь будет принята с благодарностью.