2012-12-05 23 views
15

İlk "büyük" uygulamamı Heroku üzerinde Flask ile geliştirmeye çalışıyorum ve temel eğiticiyi şu adreste birleştirmeye çalışıyorum: https://devcenter.heroku.com/articles/pythonhttp://flask.pocoo.org/docs/patterns/packages/#larger-applications. Bu "ustabaşı start" ile lokal olarak çalışır ama Heroku için itmek zaman yanlış liman kullanımda olduğunu bir hata alıyorum: 45: 18 + 00 komuta python run.py 2012-12-04T23 ileFlask uygulamasını Heroku'ya dağıtma

Başlangıç ​​süreci: 00 uygulama [web.1]: * üzerinde çalışıyor http://127.0.0.1:5000/ 2012-12-04T23: 45: 18 + 00: 00 uygulama [web.1]: * Yeniden yükleyici ile yeniden başlatılıyor 2012-12-04T23: 45: 23 + 00: 00 Heroku [web.1]: Hata R11 (Kötü bağlama) -> port 5000 bağlı Süreci, 33507 bütün bu yeniyim ama

(ortam değişkeni pORT bakınız) olmalıdır o l Heroku'da "yerel olarak" çalışmayı deniyor gibi görünüyor. Her türlü kombinasyonu denedim, ancak işe yaramayacağım. (App "PML" denir) Benim çok basit kod kişinin şu anda:

dizini:/PML

Procfile:

web: python run.py 

run.py:

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

dizin :/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!' 

cevap

24

ben Heroku kullanmadıysanız, ancak Flask için ayrılmış bir bağlantı noktası var gibi bana göre, özellikle 33507. O bir ortam kullanmaya çalışır gibi görünüyor, görünüyor Değişim, hangi Heroku içinde ayarlandığından emin değilim. İyi haber, Flask'a hangi limanı kullanacağını söyleyebilirsin.

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

ve böyle yapılır Heroku içinde env PORT ekleme gibi görünüyor:

bu deneyin

heroku config:add PORT=33507 

Sen sadece bunlardan birini yapmak zorunda olmalıdır. İlkini denerdim, bana göre, sorunu düzeltmenin en basit yolu. Sorun burada devreye girer

Yayınınızdan makaleyi okuduktan sonra DÜZENLEME
, görüyorum.

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

Bu çizgi söyler, bu ayarlanırsa ortamdan PORT değerini almak, aksi onlar bu onların dokümanlarında budur eğer 5000 çalışmasına izin vermeyeceğini neden emin değilim 5000. kullanın, ancak ben bu değişikliği denemek: sağ di beni işaret için

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

Teşekkür reaksiyonu. Sonunda koşuyu değiştirerek işe koyuldum.pt için: "import os" 'pml içe aktarma uygulamasından ' ' port = int (os.environ.get (' PORT ', 5000))' 'app.run (host =' 0.0.0.0 ', bağlantı noktası = bağlantı noktası) ' – crix