בעיה בהעלאה להירוקו - gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

אני עוקב אחרי ההוראות של שבוע 12 כדי להעלות להירוקו, וכל פעם אני מקבל שגיאה אחרת. ווידאתי שגוניקורן מותקן, עידכנתי את קובץ הריקווירמנטס (התוכן שלו מועתק למטה), יצרתי Procfile עם שורת הטקסט שכתובה במדריך, ואני מקבל את השגיאה הזו: gunicorn.errors.HaltServer: <HaltServer ‘Worker failed to boot.’ 3> כשאני עושה דיפלוי

גיגול שלה העלה כל מיני מדריכים שקשורים לבעיות בלינוקס דביאן ועוד מגוון דברים שלא רלוונטיים לי. אני לא יודע מה עוד אפשר לעשות.

click==7.1.2
config==0.5.0.post0
Flask==1.1.2
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
peewee==3.14.0
psycopg2==2.8.6
Werkzeug==1.0.1

פעם אחרונה שנתקלתי בזה פה בפורומים זו הייתה בעיה שנובעת מכך ש־import כלשהו לא נטען כמו שצריך.

אפשר לראות את ה־build log ואת ה־app log שלך בבקשה?
יש קישור ל־GitHub עם הפרויקט?

עכשיו הוא נותן לי שגיאה אחרת משום מה:

זה הקישור לריפו:

בפרוקפייל יש לי את זה: web: gunicorn app:app

כל הקוד מלבד הקונפיג נמצא בקובץ אחד. בתוכו האפפ מוגדר באופן הבא:

app = Flask(name)
app.config.from_pyfile(‘config.py’)

ומופעל על ידי:

if name == ‘main’:
app.run()

אוקיי. מה השגיאה אומרת?

שאין לי מודול שנקרא אפפ. אבל האובייקט אפפ שלי מוגדר ב app = Flask(name ) לא?

מה זה מודול בתוכניות פייתון, בעצם?

חלק מהקוד שנמצא בקובץ נפרד. ניסיתי לייבא אותו בקובץ נפרד ולא הצלחתי. כלומר ניסיתי ליצור קובץ wsgi ולייבא מתוך הקוד הראשי אבל זה סירב לעשות את זה.

זו הגדרה טובה מאוד.
בוא נחבר. הוא אומר לך שהמודול app לא נמצא.
מה חסר אם ככה?

רמז – איך קובעים מה השם של המודול?

קוראים לו בשם app.py?

יאפ. נסה לתקן את הפרויקט בהתאם

אבל זה לא יצור לי ייבוא מעגלי?

אוקיי, יש לי 404 not found מה שאומר שיש שרת שפועל. עכשיו צריך לחבר את פוסטגרס

הגדרת ב־Procfile את web: gunicorn app:app.
נסה לחזור לחלק בחומר שמסביר מה זה אומר

אחלה :slight_smile: הצלחה

לייק 1

טוב, נראה שהצלחתי לחבר את מסד הנתונים בהירוקו, אבל אני עדיין מקבל שגיאת Not found. זה יכול להיות קשור למודול של האפפ? הוא אולי לא יודע לאן ללכת?

תלוי. מה כתבת ב־app?

זה כל התוכן של app.py:

from flask import Flask

app = Flask(name)
app.config.from_pyfile(‘config.py’)

מממ… אז איך הוא ידע מה לטעון?

אוי, שכחתי לייבא אותו לקוד הראשי. כמה פאדיחות אפשר לעשות אחרי יום שלם של קוד. ואפילו לא עשיתי את האפליקציה שבאמת רציתי.

העיקר שיתנגן :slight_smile: