使用Python Streamlit nltk应用程序的Heroku R10和H20超时错误

问题描述

我已按照教程进行操作,并花了很多时间试图在Heroku上部署Streamlit Python应用程序,但无济于事。据我所知,我的存储库中已包含所有必需的文件,并进行了更改以指定环境变量PORT。

就依赖关系而言,我有很多软件包,我担心nltk语料库会导致R10启动超时https://devcenter.heroku.com/articles/error-codes#r10-boot-timeout

我将启动时间延长了一倍,达到120秒,但仍然无济于事。我不知道我是否遗漏了一些明显的内容,对于您的任何建议将不胜感激!

Heroku日志--tail:

2020-09-01T11:53:24.520334+00:00 heroku[web.1]: Starting process with command `sh setup.sh && streamlit  run app_GUI.py
2020-09-01T11:53:25.728977+00:00 app[web.1]: setup.sh: 2: setup.sh:                                                     
2020-09-01T11:53:25.729063+00:00 app[web.1]: setup.sh: 7: setup.sh:                                                     
2020-09-01T11:53:25.729151+00:00 app[web.1]: setup.sh: 14: setup.sh:                                                    
2020-09-01T11:53:25.729154+00:00 app[web.1]: 30234                                                                      
2020-09-01T11:53:28.597500+00:00 app[web.1]:                                                                            
2020-09-01T11:53:28.597561+00:00 app[web.1]: You can now view your Streamlit app in your browser.                       
2020-09-01T11:53:28.597619+00:00 app[web.1]:                                                                            
2020-09-01T11:53:28.597741+00:00 app[web.1]: Network URL: http://172.18.117.54:8501                                     
2020-09-01T11:53:28.597871+00:00 app[web.1]: External URL: http://54.173.40.240:8501                                    
2020-09-01T11:53:28.597945+00:00 app[web.1]:                                                                            
2020-09-01T11:53:29.231436+00:00 app[web.1]: [nltk_data] Downloading package wordnet to                                 
2020-09-01T11:53:29.231446+00:00 app[web.1]: [nltk_data]     /app/.heroku/python/nltk_data...                           2020-09-01T11:53:29.255512+00:00 app[web.1]: [nltk_data]   Package wordnet is already up-to-date!                       2020-09-01T11:55:24.748343+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to 
$PORT within 120 seconds of launch                                                                                                    
2020-09-01T11:55:24.763008+00:00 heroku[web.1]: Stopping process with SIGKILL                                           
2020-09-01T11:55:24.831619+00:00 heroku[web.1]: Process exited with status 137                                          
2020-09-01T11:55:24.863525+00:00 heroku[web.1]: State changed from starting to crashed                                  
2020-09-01T12:32:26.530206+00:00 heroku[web.1]: State changed from crashed to starting                                  
2020-09-01T12:32:43.836441+00:00 heroku[web.1]: Starting process with command `sh setup.sh && streamlit 
run app_GUI.py` 2020-09-01T12:32:46.574924+00:00 app[web.1]: setup.sh: 2: setup.sh:                                                     
2020-09-01T12:32:46.574999+00:00 app[web.1]: setup.sh: 7: setup.sh:                                                     
2020-09-01T12:32:46.575113+00:00 app[web.1]: setup.sh: 14: setup.sh:                                                    
2020-09-01T12:32:46.575114+00:00 app[web.1]: 52574                                                                      
2020-09-01T12:32:51.170156+00:00 app[web.1]:                                                                            
2020-09-01T12:32:51.170606+00:00 app[web.1]: You can now view your Streamlit app in your browser.                       
2020-09-01T12:32:51.170812+00:00 app[web.1]:                                                                            
2020-09-01T12:32:51.171140+00:00 app[web.1]: Network URL: http://172.19.104.42:8501                                     
2020-09-01T12:32:51.171347+00:00 app[web.1]: External URL: http://54.158.252.62:8501                                    
2020-09-01T12:32:51.172376+00:00 app[web.1]:                                                                            
2020-09-01T12:32:52.405826+00:00 app[web.1]: [nltk_data] Downloading package wordnet to                                 
2020-09-01T12:32:52.405838+00:00 app[web.1]: [nltk_data]     /app/.heroku/python/nltk_data...                           
2020-09-01T12:32:52.432605+00:00 app[web.1]: [nltk_data]   Package wordnet is already up-to-date!                       
2020-09-01T12:34:44.432198+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to 
$PORT within 120 seconds of launch                                                                                                    
2020-09-01T12:34:44.449844+00:00 heroku[web.1]: Stopping process with SIGKILL                                           
2020-09-01T12:34:44.550792+00:00 heroku[web.1]: Process exited with status 137                                          
2020-09-01T12:34:44.589632+00:00 heroku[web.1]: State changed from starting to crashed                                  
2020-09-01T13:16:47.335672+00:00 heroku[web.1]: State changed from crashed to starting                                  
2020-09-01T13:17:03.737534+00:00 heroku[web.1]: Starting process with command `sh setup.sh && streamlit 
run app_GUI.py` 2020-09-01T13:17:05.584275+00:00 app[web.1]: setup.sh: 2: setup.sh:                                                     
2020-09-01T13:17:05.584393+00:00 app[web.1]: setup.sh: 7: setup.sh:                                                     
2020-09-01T13:17:05.584516+00:00 app[web.1]: setup.sh: 14: setup.sh:                                                    
2020-09-01T13:17:05.584518+00:00 app[web.1]: 42849                                                                      
2020-09-01T13:17:08.947861+00:00 app[web.1]:                                                                            
2020-09-01T13:17:08.947929+00:00 app[web.1]: You can now view your Streamlit app in your browser.                       
2020-09-01T13:17:08.948027+00:00 app[web.1]:                                                                            
2020-09-01T13:17:08.948491+00:00 app[web.1]: Network URL: http://172.16.229.2:8501                                      
2020-09-01T13:17:08.949200+00:00 app[web.1]: External URL: http://3.83.158.216:8501                                     
2020-09-01T13:17:08.949275+00:00 app[web.1]:                                                                            
2020-09-01T13:17:09.755143+00:00 app[web.1]: [nltk_data] Downloading package wordnet to                                 
2020-09-01T13:17:09.755435+00:00 app[web.1]: [nltk_data]     /app/.heroku/python/nltk_data...                           
2020-09-01T13:17:09.783431+00:00 app[web.1]: [nltk_data]   Package wordnet is already up-to-date!                       
2020-09-01T13:19:04.130442+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to 
$PORT within 120 seconds of launch                                                                                                    
2020-09-01T13:19:04.153124+00:00 heroku[web.1]: Stopping process with SIGKILL                                           
2020-09-01T13:19:04.251240+00:00 heroku[web.1]: Process exited with status 137                                          
2020-09-01T13:19:04.297260+00:00 heroku[web.1]: State changed from starting to crashed                                  
2020-09-01T13:42:19.846632+00:00 heroku[web.1]: State changed from crashed to starting                                  
2020-09-01T13:42:36.888856+00:00 heroku[web.1]: Starting process with command `sh setup.sh && streamlit 
run app_GUI.py` 2020-09-01T13:42:39.882500+00:00 app[web.1]: setup.sh: 2: setup.sh:                                                     
2020-09-01T13:42:39.882621+00:00 app[web.1]: setup.sh: 7: setup.sh:                                                     
2020-09-01T13:42:39.882759+00:00 app[web.1]: setup.sh: 14: setup.sh:                                                    
2020-09-01T13:42:39.882764+00:00 app[web.1]: 4041                                                                       
2020-09-01T13:42:46.359593+00:00 app[web.1]:                                                                            
2020-09-01T13:42:46.362641+00:00 app[web.1]: You can now view your Streamlit app in your browser.                       
2020-09-01T13:42:46.363612+00:00 app[web.1]:                                                                            
2020-09-01T13:42:46.363828+00:00 app[web.1]: Network URL: http://172.19.12.26:8501                                      
2020-09-01T13:42:46.364019+00:00 app[web.1]: External URL: http://3.84.245.0:8501                                       
2020-09-01T13:42:46.364328+00:00 app[web.1]:                                                                            
2020-09-01T13:42:47.638977+00:00 app[web.1]: [nltk_data] Downloading package wordnet to                                 
2020-09-01T13:42:47.638998+00:00 app[web.1]: [nltk_data]     /app/.heroku/python/nltk_data...                           
2020-09-01T13:42:47.675506+00:00 app[web.1]: [nltk_data]   Package wordnet is already up-to-date!                       
2020-09-01T13:44:25.115770+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET 
path="/" host=mighty-dawn-80756.herokuapp.com request_id=5e43b824-4cc9-4b86-9d81-a9432127165b 
fwd="89.204.224.87" dyno= connect= service= status=503 bytes= protocol=https                                                                                        
2020-09-01T13:44:37.406369+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to 
$PORT within 120 seconds of launch                                                                                                    
2020-09-01T13:44:37.438826+00:00 heroku[web.1]: Stopping process with SIGKILL                                           
2020-09-01T13:44:37.634005+00:00 heroku[web.1]: Process exited with status 137                                          
2020-09-01T13:44:37.684485+00:00 heroku[web.1]: State changed from starting to crashed                                  
2020-09-01T13:44:37.686859+00:00 heroku[web.1]: State changed from crashed to starting                                  
2020-09-01T13:44:51.975386+00:00 heroku[web.1]: Starting process with command `sh setup.sh && streamlit 
run app_GUI.py` 2020-09-01T13:44:54.309720+00:00 app[web.1]: setup.sh: 2: setup.sh:                                                     
2020-09-01T13:44:54.309814+00:00 app[web.1]: setup.sh: 7: setup.sh:                                                     
2020-09-01T13:44:54.309942+00:00 app[web.1]: setup.sh: 14: setup.sh:                                                    
2020-09-01T13:44:54.309944+00:00 app[web.1]: 42951                                                                      
2020-09-01T13:44:58.782352+00:00 app[web.1]:                                                                            
2020-09-01T13:44:58.782521+00:00 app[web.1]: You can now view your Streamlit app in your browser.                       
2020-09-01T13:44:58.782627+00:00 app[web.1]:                                                                            
2020-09-01T13:44:58.782811+00:00 app[web.1]: Network URL: http://172.17.156.178:8501                                    
2020-09-01T13:44:58.782988+00:00 app[web.1]: External URL: http://54.81.171.245:8501                                    
2020-09-01T13:44:58.783072+00:00 app[web.1]:                                                                            
2020-09-01T13:44:59.601857+00:00 app[web.1]: [nltk_data] Downloading package wordnet to                                 
2020-09-01T13:44:59.601875+00:00 app[web.1]: [nltk_data]     /app/.heroku/python/nltk_data...                           
2020-09-01T13:44:59.631770+00:00 app[web.1]: [nltk_data]   Package wordnet is already up-to-date!                       
2020-09-01T13:45:26.131779+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET 
path="/" host=mighty-dawn-80756.herokuapp.com request_id=ad8c74f2-3767-435d-b628-10403daf71a3 
fwd="89.204.224.87" dyno= connect= service= status=503 bytes= protocol=https                                                                                        
2020-09-01T13:46:01.025283+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET 
path="/" host=mighty-dawn-80756.herokuapp.com request_id=25cdd797-c385-4ff2-a59a-582ef632ccf4 
fwd="89.204.224.87" dyno= connect= service= status=503 bytes= protocol=https                                                                                        
2020-09-01T13:46:52.219575+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to 
$PORT within 120 seconds of launch                                                                                                    
2020-09-01T13:46:52.244085+00:00 heroku[web.1]: Stopping process with SIGKILL                                           
2020-09-01T13:46:52.374195+00:00 heroku[web.1]: Process exited with status 137                                          
2020-09-01T13:46:52.423576+00:00 heroku[web.1]: State changed from starting to crashed                                  
2020-09-01T13:46:53.922418+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" 
host=mighty-dawn-80756.herokuapp.com request_id=34dc3d37-de5c-453e-9fe3-058a43585bc6 fwd="89.204.224.87" 
dyno= connect= service= status=503 bytes= protocol=https                                                                                             
2020-09-01T13:46:55.119412+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" 
host=mighty-dawn-80756.herokuapp.com request_id=0f331c50-7f0a-4122-ba46-957bbc7a73a8 fwd="89.204.224.87" 
dyno= connect= service= status=503 bytes= protocol=https                                                                                             
2020-09-01T13:46:55.122942+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET 
path="/favicon.ico" host=mighty-dawn-80756.herokuapp.com request_id=2be27373-9ccf-43e5-afc8-aca8d6339d26 
fwd="89.204.224.87" dyno= connect= service= status=503 bytes= protocol=https                                                                                  
2020-09-01T14:12:10.847296+00:00 heroku[web.1]: State changed from crashed to starting                                  
2020-09-01T14:12:26.864609+00:00 heroku[web.1]: Starting process with command `sh setup.sh && streamlit 
run app_GUI.py` 2020-09-01T14:12:29.334829+00:00 app[web.1]: setup.sh: 2: setup.sh:                                                     
2020-09-01T14:12:29.336679+00:00 app[web.1]: setup.sh: 7: setup.sh:                                                     
2020-09-01T14:12:29.337364+00:00 app[web.1]: setup.sh: 14: setup.sh:                                                    
2020-09-01T14:12:29.337398+00:00 app[web.1]: 34312                                                                      
2020-09-01T14:12:34.857956+00:00 app[web.1]:                                                                            
2020-09-01T14:12:34.857996+00:00 app[web.1]: You can now view your Streamlit app in your browser.                       
2020-09-01T14:12:34.858074+00:00 app[web.1]:                                                                            
2020-09-01T14:12:34.858183+00:00 app[web.1]: Network URL: http://172.17.236.170:8501                                    
2020-09-01T14:12:34.858431+00:00 app[web.1]: External URL: http://54.175.135.76:8501                                    
2020-09-01T14:12:34.858461+00:00 app[web.1]:                                                                            
2020-09-01T14:12:36.264287+00:00 app[web.1]: [nltk_data] Downloading package wordnet to                                 
2020-09-01T14:12:36.264532+00:00 app[web.1]: [nltk_data]     /app/.heroku/python/nltk_data...                           
2020-09-01T14:12:36.294373+00:00 app[web.1]: [nltk_data]   Package wordnet is already up-to-date!                       
2020-09-01T14:14:27.237637+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to 
$PORT within 120 seconds of launch                                                                                                    
2020-09-01T14:14:27.254987+00:00 heroku[web.1]: Stopping process with SIGKILL                                           
2020-09-01T14:14:27.370891+00:00 heroku[web.1]: Process exited with status 137                                          
2020-09-01T14:14:27.416378+00:00 heroku[web.1]: State changed from starting to crashed

我的Git存储库中包含以下所有文件:

  • setup.sh
mkdir -p ~/.streamlit/

echo "\
[general]\n\
email = \"eval2496@gmail.com\"\n\
" > ~/.streamlit/credentials.toml

echo "\
[server]\n\
headless = true\n\
enableCORS=false\n\
port = $PORT\n\
">~/.streamlit/config.toml

echo $PORT 
  • requirements.txt
streamlit==0.65.2
pandas==1.0.5
numpy==1.18.4
scikit-learn==0.23.1
nltk==3.5
  • Procfile
web: sh setup.sh && streamlit run app_GUI.py
  • nltk.txt
stopwords
wordnet
  • runtime.txt
python-3.7.5
  • 值驱动程序Details.xlsx:app_GUI.py调用的数据

  • app_GUI.py

import pandas as pd
import re
import string
import nltk
import os
nltk.download('wordnet')
import streamlit as st
from nltk.stem.lancaster import LancasterStemmer
from sklearn.feature_extraction.text import TfidfVectorizer 
from sklearn.metrics.pairwise import cosine_similarity


ON_HEROKU = os.environ.get('ON_HEROKU')

if ON_HEROKU:
    # get the heroku port
    port = int(os.environ.get('PORT',17995))  # as per OP comments default is 17995
else:
    port = 3000

# functions that run and return output

解决方法

结果是我丢失了xlrd软件包,但看不到错误。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...