2015-03-30 6 views
9

मैं एक साधारण फ्लास्कैप बना रहा हूं जिसे मैं हरोकू पर तैनात करने जा रहा हूं, पहली बार उसकेोकू पर एक पायथन ऐप तैनात कर रहा था, जिसमें कहा गया था कि मैं बंदूक के लिए नया हूं।त्रुटि: [एर्र्नो 98] पता पहले से ही उपयोग में है

अतिरिक्त नोट्स: वर्चुअल वातावरण का उपयोग करना।

कुप्पी बोतल == 0.10.1

gunicorn == 19.3.0

'अजगर run.py' काम करता है

का उपयोग करते हुए 'फोरमैन स्टार्ट' मैं का उपयोग करने के संस्करण निम्नलिखित त्रुटि

16:35:44 web.1 | started with pid 4047 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4047] [INFO] Starting gunicorn 19.3.0 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4047] [INFO] Listening at: http://0.0.0.0:5000 (4047) 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4047] [INFO] Using worker: sync 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4053] [INFO] Booting worker with pid: 4053 
16:35:44 web.1 | * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4053] [ERROR] Exception in worker process: 
16:35:44 web.1 | Traceback (most recent call last): 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 507, in spawn_worker 
16:35:44 web.1 |  worker.init_process() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 118, in init_process 
16:35:44 web.1 |  self.wsgi = self.app.wsgi() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
16:35:44 web.1 |  self.callable = self.load() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
16:35:44 web.1 |  return self.load_wsgiapp() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
16:35:44 web.1 |  return util.import_app(self.app_uri) 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/util.py", line 355, in import_app 
16:35:44 web.1 |  __import__(module) 
16:35:44 web.1 | File "/home/adminuser/Desktop/Github/SoftwareEng/barcodeServer/SoftwareEng/run.py", line 3, in <module> 
16:35:44 web.1 |  flaskapp.run(debug=True) 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/flask/app.py", line 772, in run 
16:35:44 web.1 |  run_simple(host, port, self, **options) 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/werkzeug/serving.py", line 617, in run_simple 
16:35:44 web.1 |  test_socket.bind((hostname, port)) 
16:35:44 web.1 | File "/usr/lib/python2.7/socket.py", line 224, in meth 
16:35:44 web.1 |  return getattr(self._sock,name)(*args) 
16:35:44 web.1 | error: [Errno 98] Address already in use 
16:35:44 web.1 | Traceback (most recent call last): 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 507, in spawn_worker 
16:35:44 web.1 |  worker.init_process() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 118, in init_process 
16:35:44 web.1 |  self.wsgi = self.app.wsgi() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
16:35:44 web.1 |  self.callable = self.load() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
16:35:44 web.1 |  return self.load_wsgiapp() 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
16:35:44 web.1 |  return util.import_app(self.app_uri) 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/gunicorn/util.py", line 355, in import_app 
16:35:44 web.1 |  __import__(module) 
16:35:44 web.1 | File "/home/adminuser/Desktop/Github/SoftwareEng/barcodeServer/SoftwareEng/run.py", line 3, in <module> 
16:35:44 web.1 |  flaskapp.run(debug=True) 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/flask/app.py", line 772, in run 
16:35:44 web.1 |  run_simple(host, port, self, **options) 
16:35:44 web.1 | File "/home/adminuser/Desktop/test/SoftwareEng/local/lib/python2.7/site-packages/werkzeug/serving.py", line 617, in run_simple 
16:35:44 web.1 |  test_socket.bind((hostname, port)) 
16:35:44 web.1 | File "/usr/lib/python2.7/socket.py", line 224, in meth 
16:35:44 web.1 |  return getattr(self._sock,name)(*args) 
16:35:44 web.1 | error: [Errno 98] Address already in use 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4053] [INFO] Worker exiting (pid: 4053) 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4047] [INFO] Shutting down: Master 
16:35:44 web.1 | [2015-03-30 16:35:44 +0000] [4047] [INFO] Reason: Worker failed to boot. 
16:35:44 web.1 | exited with code 3 
16:35:44 system | sending SIGTERM to all processes 

Procfile

web: gunicorn run:flaskapp --log-file=- 

फ़ाइल संरचना

/ 
... 
run.py 
Procfile 
app/ 
    __init__.py 
    routes.py 
    ... 

run.py

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

__init__.py

from flask import Flask 

flaskapp = Flask(__name__) 
from app import routes 

routes.py

from app import flaskapp 
from flask import render_template 
import dbwrapper 

@flaskapp.route('/') 
@flaskapp.route('/home') 
def index(): 
    return render_template('home.html') 

जो मैंने पढ़ा है, वह बंदरगाह से कई धागे के निर्माण की अनुमति देता है, जो मुझे लगता है कि धागे उसी पोर्ट तक पहुंचने की कोशिश कर रहे हैं जो पहले से ही त्रुटि में उपयोग करता है। हालांकि मुझे नहीं पता कि इसे कैसे हल किया जाए, किसी भी मदद की सराहना की जाती है।

उत्तर

7

ऐसा लगता है कि आप रनिंग कर रहे हैं: ऐप के बजाय flaskapp: flaskapp और run.py एक और उदाहरण खोलने का प्रयास कर रहा है।

16:35:44 web.1 | File "/home/adminuser/Desktop/Github/SoftwareEng/barcodeServer/SoftwareEng/run.py", line 3, in <module> 

सबसे पहले, हमेशा रन संपुटित:

if __name__ == '__main__': 
    flaskapp.run(debug=True) 

और अपने procfile कॉल करने के लिए अद्यतन app.__init__.py बजाय:

web: gunicorn app:flaskapp --log-file=- 

पुनश्च: मैं नहीं जानता कि क्या procfile या फोरमैन हैं - Heroku चीजें?

+0

procfile एक फ़ाइल है जिसका उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि आप किन आदेशों को चलाने के लिए सबसे अच्छा कहा गया है [यहां] (http://stackoverflow.com/questions/18670186/launching-an-app-in-heroku-what-is -procfile-web-command) फोरमैन टूलूल्ट के लिए विशिष्ट है जिसे मैंने उसकेोकू के लिए स्थापित किया है, यह ऐप –

+0

एप शुरू करने के लिए procfile का उपयोग करता है। अगर प्रस्तावित फिक्स ने इस मुद्दे को संबोधित किया तो मुझे बताएं। – Jonathan

+3

मुझे बस जोड़ने की आवश्यकता है यदि \ __ नाम \ __ == '\ __ मुख्य \ __': और यह काम करता है, बहुत बहुत धन्यवाद –

संबंधित मुद्दे