python-3.x - 我的 webapp 出现问题,我该如何解决?
问题描述
我使用 Python 和 Streamlit 创建的应用程序有一个小问题。问题是当我想将它部署到 Heroku 服务时,它会构建,但是当我尝试访问它时,它告诉我有一个应用程序错误。
我查看了我的代码,在本地机器上运行良好。
你有什么主意吗?
代码:
# Loading packages ##########################################################################
import streamlit as st
import numpy as np
import networkx as nx
from pyvis.network import Network
# import plotly.express as px
###############################################################################################
st.set_page_config(layout="wide")
##### Creazione Sidebar ####################################################################
st.sidebar.title('Ottimizzazione')
st.sidebar.header('Creazione matrice')
st.sidebar.write('Scrivere la matrice quadrata come da esempio Matrice: 1,2;4,5')
st.sidebar.write('Usare la , per separe le varie colonne e il ; per andare alla prossima riga')
input_matrice=st.sidebar.text_area('Scrivere Matrice:')
# Creazione matrice
matrice = np.matrix(input_matrice)
matrice_array = np.asarray(matrice)
##### Creazione Due colonne per output ##############################################################
left_column1, right_column1 = st.beta_columns(2)
left_column2, right_column2 = st.beta_columns(2)
## Visualizzazione matrice
with left_column1:
st.header('Matrice Quadrata Creata:')
matrice_array
with right_column1:
st.header('Visualizzazione del grafo:')
st.write('Il grafo verrà visualizzato in una apgina separata, in quanto al momento non riuslta possible integrarlo nella pagina pricipale')
##### Creaizone Input per calcolo #######################################################
st.sidebar.header('Calcolo percorso:')
st.sidebar.write('Calcolo del percorso più corto, Nx nodo di partenza e Ny nodo di arrivo. I nodi della matrice corrispondono agli indici della colonna.')
selezione = st.sidebar.radio("Seleziona tipo di calcolo",('Da Nx a tutti più vicini','Da Nx a Ny'))
if selezione == 'Da Nx a tutti più vicini':
nodo_partenza=np.int(st.sidebar.number_input('Scrivere nodo di partenza (Numero intero):'))
bottone_calcolo = st.sidebar.button('Calcola percorso', key=1)
if bottone_calcolo:
grafo_matrice = nx.from_numpy_matrix(matrice_array)
percorso = nx.single_source_dijkstra_path(grafo_matrice, nodo_partenza, weight='weight')
lunghezza = nx.single_source_dijkstra_path_length(grafo_matrice, nodo_partenza, weight='weight')
with left_column2:
st.header('Percorsi:')
st.write('Qui vengono mostrati i vari percorsi che sono stati trovati. I valori a destra corrispondono al ordine di successione, mentre I valori a destra i vari nodi.')
percorso
with right_column2:
st.header('Tempi percorsi:')
st.write('Qui vengono mostrati i vari tempi dei vari percorsi')
lunghezza
with right_column1:
nt=Network("1000px","1000px")
nt.from_nx(grafo_matrice)
nt.show("nx.html")
elif selezione == 'Da Nx a Ny':
nodo_partenza=np.int(st.sidebar.number_input('Scrivere nodo di partenza (Numero intero):'))
nodo_arrivo=np.int(st.sidebar.number_input('Scrivere nodo di arrivo (Numero intero):'))
bottone_calcolo = st.sidebar.button('Calcola percorso', key=2)
if bottone_calcolo:
grafo_matrice = nx.from_numpy_matrix(matrice_array)
percorso = nx.shortest_path(grafo_matrice, source=nodo_partenza, target=nodo_arrivo, weight='weight')
lunghezza = nx.shortest_path_length(grafo_matrice, source=nodo_partenza, target=nodo_arrivo, weight='weight')
with left_column2:
st.header('Percorso:')
st.write('Qui viene mostrato il percorso trovato. I valori a destra corrispondono al ordine di successione, mentre I valori a destra i vari nodi.')
percorso
with right_column2:
st.header('Tempo percorso:')
st.write('Qui viene mostrato il tempo totale del pecrorso più breve')
lunghezza
with right_column1:
nt=Network("1000px","1000px")
nt.from_nx(grafo_matrice)
nt.show("nx.html")
要求:
streamlit==0.75.0
numpy==1.19.2
networkx==2.5.0
pyvis==0.1.9
感谢您的帮助!
解决方案
我解决了这个问题,看来问题不在代码中,而是在运行 webapp 的代码命令中
推荐阅读
- google-sheets - Google 电子表格:数值参数无法解析为数字
- php - URL slug 变量
- reactjs - react-virtualized:如何使用单独的 rowRenderer 进行高度测量
- java - 将 mp4 从 Android 手机上传到 Spring 服务器会导致文件丢失几百字节(如果大于 2MB)
- chatbot - Chatbase 机器人:无法加载成绩单。请尝试刷新页面
- linux - 如何将复制的文本附加到剪贴板的新行?
- installation - 如何为 g++ 提供 fftw 路径以安装 FIT-SNE
- c++ - 插槽失败 QWebSocket
- viewmodel - 如何将变量 taskId 从 viewmodel 用于活动
- r - 使用ggplot绘制点函数