2012-12-05 7 views
15

Heroku에서 Flask로 첫 번째 "대형"응용 프로그램을 개발하려고합니다. 여기서 기본 지침서 인 https://devcenter.heroku.com/articles/python과 여기에 http://flask.pocoo.org/docs/patterns/packages/#larger-applications을 결합하려고합니다. 그것은 "주임 시작"로컬로 작동하지만 내가 Heroku가를 누를 때 나는 잘못된 포트가 사용 중임 오류 얻을 : 45 : 18 + 00 명령 python run.py 2012-12-04T23와Heroku에 Flask 응용 프로그램 배포

시작 프로세스를 : 00 app [web.1] : * Running on http://127.0.0.1:5000/ 2012-12-04T23 : 45 : 18 + 00 : 00 app [web.1] : * 리로더로 재시작 2012-12-04T23 : 45 : 23 + 00 : 00에게 Heroku는 [web.1] : 오류 R11 (나쁜 바인드) -> 포트 5000에 바인딩 프로세스, 33507 나는이 모든 새로운 해요,하지만

을 (환경 변수 PORT 참조)해야 그 리터 Heroku에서 "국부적으로"달리려고하는 것 같은 ooks. 모든 종류의 조합을 시도했지만 제대로 작동하지 않습니다. (응용 프로그램은 "PML"라고합니다) 내 매우 간단한 코드가 바로 지금입니다 :

디렉토리 :/PML

Procfile :

web: python run.py 

run.py :

from pml import app 
app.run(debug=True) 

디렉토리 :/pml/pml/

__init__.py

from flask import Flask 
app = Flask(__name__) 

import pml.views 

view.py

from pml import app 

@app.route('/') 
def index(): 
    return 'Hello World!' 

답변

24

내가 Heroku가 사용하지 않은,하지만 그들은 플라스크에 예약 된 포트를 가지고있는 것처럼 나에게, 그것은 특별히 33507. 그것은 환경을 사용하려고합니다처럼 보이는 외모 변수, 나는 Heroku에서 설정하는 방법을 잘 모르겠습니다. 좋은 소식은 당신이 사용할 포트를 Flask에게 알릴 수 있다는 것입니다.

app.run(debug=True, port=33507) 

과는 다음과 같이 이루어집니다에게 Heroku에서 ENV에 포트를 추가하는 다음과 같습니다 :

이 시도

heroku config:add PORT=33507 

당신은 는 다음 중 하나를 수행해야한다. 제게 먼저 시도해 보겠습니다. 문제를 해결할 수있는 직접적인 방법입니다. 문제가 어디에서 오는

게시물에서 기사를 읽은 후 편집
, 난을 참조하십시오.

port = int(os.environ.get('PORT', 5000)) 

그 선은 말한다,이 설정되어있는 경우 환경에서 PORT의 가치를, 그렇지 않으면 나는 그들이 그 자신의 문서에 무슨 경우 5000에서 실행되도록 허용하지 않을 이유를 잘 모르겠습니다 5000 사용하지만, 나는이 변화를 시도 할 것 : 올바른 디 나를 가리키는위한

port = int(os.environ.get('PORT', 33507)) 
+5

감사합니다 거절. 나는 마침내 그것을 달리게하는 것에 의해 일하게했다.py to : import os' 'from pml import app' 'port = int (os.environ.get ('PORT', 5000))' 'app.run (host = '0.0.0.0', port = 포트)' – crix