2017-09-20 4 views
0
ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?) 

Ich baute diese App zurück in 2013-2014, und es hat seitdem nicht viel Wartung gesehen. Aber jetzt gibt es ein Problem, einige AWS-Schlüssel müssen geändert werden, aber ich kann die App nicht bereitstellen.Django Bereitstellung auf Heroku, Upgrade auf Cedar-14, Importeinstellungen Fehler

git push heroku master Ergebnisse in einem fehlgeschlagenen Build es sei denn, ich

heroku config:set DISABLE_COLLECTSTATIC=0 

Also, habe ich, dass es zu wissen wahrscheinlich die Seite brechen würde, aber es wird nie auch nur bis zu diesem Punkt, weil ich dann kann ich herausfinden, Ich stelle es erst bereit, wenn ich auf Cedar-14 aufrüste. Ok, also tue ich das, drücke dann und dann bekomme ich ImportError auf jedem Prüfstand.

app/web.1: ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?): cannot import name _uuid_generate_random 

app/celerybeat.1: ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?): cannot import name _uuid_generate_random 

app/celeryd.1: ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?): cannot import name _uuid_generate_random 

Also las ich here, die ich Kombu zu aktualisieren. Ok, also tue ich das. Nun das gleiche Problem, aber am Ende der Fehler, ich sehe dies:

cannot import name ResourceError 

ich gegoogelt habe, und so suchte, kann nicht viel Erwähnung dieser Fehler überall finden, und wenn ich Heroku hinzufügen, Ich bekomme Null Ergebnisse. Wann wurde das letzte Mal nach einem Fehlercode gesucht, der null Ergebnisse liefert?

Das einzige, was ich denken kann ist, dass ich eine sehr alte Version von Gunicorn, gunicorn==0.14.6, laufen, aber ich bin nicht 100% sicher, was Upgrade tun wird, welche anderen Abhängigkeiten ich muss auftauen und aktualisieren oder was der neue Befehl, den ich in der Heroku-Procedatei verwenden sollte, sein sollte, da der Befehl gunicorn_django veraltet und entfernt wurde.

Jeder Gedanke, wie man diese App am besten aktualisiert, so dass ich eine einfache Änderung der Einstellungen bereitstellen kann, wäre sehr willkommen.

Hier ist der procfile, falls dies der Fehler keine zusätzlichen Kontext stellt:

web: gunicorn_django -b 0.0.0.0:$PORT -w 9 -k gevent --max-requests 250 --preload settings.prod 
celeryd: python manage.py celeryd -E -B --loglevel=INFO --settings=settings.prod 
celerybeat: python manage.py celerybeat -S djcelery.schedulers.DatabaseScheduler --settings=settings.prod 

Antwort

0

meine eigene Frage zu beantworten.

Kredit zuerst mrooney für this post, die mich an den richtigen Ort gebracht. Das Problem war Kombu, aber das Aktualisieren dieser Bibliothek bringt mich zur Abhängigkeits-Hölle, wo jedes Upgrade eine andere Abhängigkeit verursacht, die bricht.

Das erste Problem war aufgrund der automatisierten Build eine Collectstatic, aber nicht mit meiner --settings = settings.prod Flag, so tun heroku config:set DISABLE_COLLECTSTATIC=0 war die erste richtige Aktion. Die nachfolgenden Ausgaben standen in keinem Zusammenhang mit dem ursprünglichen Problem. Glücklicherweise hostet ich alle meine statischen Dateien in S3, daher ist der Befehl collectstatic nicht notwendig.

Der Vorschlag von mrooney war ein paar Zeilen in der Einstellungsdatei, um die fehlende Funktion _uuid_generate_random abzufangen und einen Standardwert zuzuweisen. Ich musste am Ende Gevent aktualisieren, aber dieses Upgrade hat nichts anderes kaputt gemacht, und danach war der Heroku-Build erfolgreich.

Ich würde gerne einen Beitrag zum kostenlosen PaperTrail-Addon für Heroku hinzufügen, ohne das ich absolut keine Ahnung hätte, wie man Probleme beheben kann. Wenn Sie es nicht benutzen, schlage ich vor, dass Sie anfangen.

Wurd.

Verwandte Themen