2015-10-27 6 views
15

से नाम बदलते समय गनिकॉर्न ऐप नहीं ढूंढ सकता है, मैं अपने फ्लास्क ऐप को चलाने के लिए gunicorn --workers 3 wsgi का उपयोग करता हूं। यदि मैं परिवर्तनीय application से myapp बदलता हूं, तो गनिकॉर्न त्रुटि AppImportError: Failed to find application: 'wsgi' देता है। मुझे यह त्रुटि क्यों मिल रही है और मैं इसे कैसे ठीक करूं?"एप्लिकेशन"

myproject.py:

from flask import Flask 

myapp = Flask(__name__) 

@myapp.route("/") 
def hello(): 
    return 'Test!' 

if __name__ == "__main__": 
    myapp.run(host='0.0.0.0') 

wsgi.py:

from myproject import myapp 

if __name__ == "__main__": 
    myapp.run() 

उत्तर

32

Gunicorn (और सबसे WSGI सर्वर) प्रतिदेय application या app जो कुछ मॉड्यूल आप पर यह बात में नाम की तलाश करने के लिए चूक। बस एक उपनाम from myproject import myapp as application या application = myapp जोड़ना Gunicorn को फिर से कॉल करने योग्य खोजने देगा।

हालांकि, wsgi.py फ़ाइल या उपनाम की आवश्यकता नहीं है, तो गनिकोर्न को वास्तविक मॉड्यूल और कॉल करने योग्य पर सीधे इंगित किया जा सकता है। wsgi.py फ़ाइल अलग करने का लगभग कोई अच्छा कारण नहीं है।

gunicorn myproject:myapp --workers 16 
+4

कारण हो सकते हैं, लेकिन उनमें से कोई भी प्रश्न में दिए गए नमूने को लागू नहीं करता है। उत्पादन बनाम देव के लिए कॉन्फ़िगरेशन विनिर्देश की आसानी एक है। –

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