0
저는 처음으로 Heroku에 Python 플라스크 웹 응용 프로그램을 원격 배포하려고했지만 물론 몇 가지 문제가 있습니다.
2013-08-21T00:12:55.985496+00:00 heroku[web.1]: Starting process with command `python geodesicDistance.py`
2013-08-21T00:12:57.326395+00:00 app[web.1]: * Running on http://127.0.0.1:12176/
2013-08-21T00:12:57.326395+00:00 app[web.1]: * Restarting with reloader
2013-08-21T00:13:56.914333+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2013-08-21T00:13:56.914595+00:00 heroku[web.1]: Stopping process with SIGKILL
2013-08-21T00:13:58.185305+00:00 heroku[web.1]: Process exited with status 137
2013-08-21T00:13:58.205874+00:00 heroku[web.1]: State changed from starting to crashed
2013-08-21T00:18:23.999482+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=stormy-sands-9363.herokuapp.com fwd="93.46.195.73" dyno= connect= service= status=503 bytes=
나는 그것이 포트 문제입니다 믿고
<script type="text/javascript">
function checkGeolocation() {
if (navigator.geolocation) {
refresh();
} else {
$('#results')[0].innerHTML = "<p>Your browser doesn't support geolocation <br /></p>";
}
}
function getDistance(position) {
url = 'http://127.0.0.1:5000/geodesicDistance';
query =position.coords.latitude.toString()+','+position.coords.longitude.toString();
$.get(url, {'q': query},function(data) {
$('#results .distance')[0].innerHTML = Math.round(data['result']['distance']*1000)/1000;
})
}
function handleError(error) {
alert(error.message);
}
function refresh() {
navigator.geolocation.getCurrentPosition(getDistance,handleError);
}
$(document).ready(function(){
checkGeolocation();
});
</script>
이 Heruku가 로그에 따라 제공하는 오류입니다 :
# server settings
HOST = '127.0.0.1'
PORT = int(os.environ.get('PORT', 5000))
DEBUG_MODE = True
...
#functions definition
...
app = Flask(__name__)
@app.route("/geodesicDistance")
def geodesicDistance():
t_start = time.time()
query = parse_query(request.args)
if query:
position = geocode_address(query)
if (position) and (len(position[u'results'])>0):
lat = position[u'results'][0][u'geometry'][u'location'][u'lat']
lng = position[u'results'][0][u'geometry'][u'location'][u'lng']
response = create_response(200,
'Good query',
lat,
lng,
position[u'results'][0][u'formatted_address'],
get_distance(lat,lng)
)
else:
response = create_response(400,
'Bad formed query',
'',
'',
'',
'')
else:
response = create_response(204,
'No query made',
givenAddress['lat'],
givenAddress['lng'],
'White Bear Yard, 144a Clerkenwell Road, London, EC1R 5DF, UK',
0.0
)
response['result']['elapsed'] = (time.time() - t_start)*1.0e3
http_response = make_response(json.dumps(response))
http_response.headers['Content-type'] = 'application/json'
http_response.headers['Access-Control-Allow-Origin'] = '*'
return http_response
if __name__=="__main__":
app.run(debug=DEBUG_MODE, host=HOST, port=PORT)
그리고 내 자바 스크립트 : 내 파이썬 코드는 다음과 같습니다 원인은 내 자바 스크립트 코드의이 줄 일 수 있습니다.
url = 'http://127.0.0.1:5000/geodesicDistance';
,
는
내 Procfile Heroku가 (이 지역에서 일하고있어)
Web: python geodesicDistance.py
어떤 조언과 정적 포트를 설정 할 수있는 가능성을 가지고 있지? 이 페이지 https://devcenter.heroku.com/articles/dynos를 보면
문제는 잘못된 procfile 명령으로 인한 것 같습니다. 웹 : gunicorn geodesic 거리 : 앱 실행 중 – user2697881