In Heroku, how to running gunicorn & import whitenoise?

270 views Asked by At
2020-10-01T03:28:40.496699+00:00 heroku[web.1]: Starting process with command `gunicorn Nstory.wsgi --log-file -`
2020-10-01T03:28:43.803839+00:00 heroku[web.1]: State changed from starting to up
2020-10-01T03:28:43.367859+00:00 app[web.1]: [2020-10-01 03:28:43 +0000] [4] [INFO] Starting gunicorn 20.0.4
2020-10-01T03:28:43.368669+00:00 app[web.1]: [2020-10-01 03:28:43 +0000] [4] [INFO] Listening at: http://0.0.0.0:35650 (4)
2020-10-01T03:28:43.368936+00:00 app[web.1]: [2020-10-01 03:28:43 +0000] [4] [INFO] Using worker: sync
2020-10-01T03:28:43.374298+00:00 app[web.1]: [2020-10-01 03:28:43 +0000] [9] [INFO] Booting worker with pid: 9
2020-10-01T03:28:43.382660+00:00 app[web.1]: [2020-10-01 03:28:43 +0000] [10] [INFO] Booting worker with pid: 10
2020-10-01T03:28:44.338145+00:00 app[web.1]: [2020-10-01 12:28:44 +0900] [9] [ERROR] Exception in worker process
2020-10-01T03:28:44.338188+00:00 app[web.1]: Traceback (most recent call last):
2020-10-01T03:28:44.338190+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-10-01T03:28:44.338191+00:00 app[web.1]: worker.init_process()
2020-10-01T03:28:44.338191+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-10-01T03:28:44.338192+00:00 app[web.1]: self.load_wsgi()
2020-10-01T03:28:44.338192+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-10-01T03:28:44.338192+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2020-10-01T03:28:44.338193+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-10-01T03:28:44.338193+00:00 app[web.1]: self.callable = self.load()
2020-10-01T03:28:44.338194+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-10-01T03:28:44.338194+00:00 app[web.1]: return self.load_wsgiapp()
2020-10-01T03:28:44.338195+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-10-01T03:28:44.338195+00:00 app[web.1]: return util.import_app(self.app_uri)
2020-10-01T03:28:44.338195+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app
2020-10-01T03:28:44.338196+00:00 app[web.1]: mod = importlib.import_module(module)
2020-10-01T03:28:44.338196+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
2020-10-01T03:28:44.338197+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2020-10-01T03:28:44.338198+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2020-10-01T03:28:44.338198+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2020-10-01T03:28:44.338199+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
2020-10-01T03:28:44.338199+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2020-10-01T03:28:44.338199+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 783, in exec_module
2020-10-01T03:28:44.338200+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-10-01T03:28:44.338200+00:00 app[web.1]: File "/app/Nstory/wsgi.py", line 19, in <module>
2020-10-01T03:28:44.338200+00:00 app[web.1]: from whitenoise.django import DjangoWhiteNoise
2020-10-01T03:28:44.338201+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/django.py", line 1, in <module>
2020-10-01T03:28:44.338201+00:00 app[web.1]: raise ImportError(
2020-10-01T03:28:44.338202+00:00 app[web.1]: ImportError:
2020-10-01T03:28:44.338202+00:00 app[web.1]:
2020-10-01T03:28:44.338203+00:00 app[web.1]: Your WhiteNoise configuration is incompatible with WhiteNoise v4.0
2020-10-01T03:28:44.338203+00:00 app[web.1]: This can be fixed by following the upgrade instructions at:
2020-10-01T03:28:44.338203+00:00 app[web.1]: http://whitenoise.evans.io/en/stable/changelog.html#v4-0
2020-10-01T03:28:44.338204+00:00 app[web.1]:
2020-10-01T03:28:44.338204+00:00 app[web.1]:
2020-10-01T03:28:44.338364+00:00 app[web.1]: [2020-10-01 12:28:44 +0900] [9] [INFO] Worker exiting (pid: 9)
2020-10-01T03:28:44.357550+00:00 app[web.1]: [2020-10-01 12:28:44 +0900] [10] [ERROR] Exception in worker process
2020-10-01T03:28:44.357552+00:00 app[web.1]: Traceback (most recent call last):
2020-10-01T03:28:44.357553+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-10-01T03:28:44.357554+00:00 app[web.1]: worker.init_process()
2020-10-01T03:28:44.357555+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-10-01T03:28:44.357555+00:00 app[web.1]: self.load_wsgi()
2020-10-01T03:28:44.357556+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-10-01T03:28:44.357556+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2020-10-01T03:28:44.357559+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-10-01T03:28:44.357560+00:00 app[web.1]: self.callable = self.load()
2020-10-01T03:28:44.357560+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-10-01T03:28:44.357561+00:00 app[web.1]: return self.load_wsgiapp()
2020-10-01T03:28:44.357561+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-10-01T03:28:44.357561+00:00 app[web.1]: return util.import_app(self.app_uri)
2020-10-01T03:28:44.357567+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app
2020-10-01T03:28:44.357568+00:00 app[web.1]: mod = importlib.import_module(module)
2020-10-01T03:28:44.357568+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
2020-10-01T03:28:44.357569+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2020-10-01T03:28:44.357569+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2020-10-01T03:28:44.357569+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2020-10-01T03:28:44.357570+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
2020-10-01T03:28:44.357585+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2020-10-01T03:28:44.357586+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 783, in exec_module
2020-10-01T03:28:44.357586+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-10-01T03:28:44.357587+00:00 app[web.1]: File "/app/Nstory/wsgi.py", line 19, in <module>
2020-10-01T03:28:44.357587+00:00 app[web.1]: from whitenoise.django import DjangoWhiteNoise
2020-10-01T03:28:44.357588+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/django.py", line 1, in <module>
2020-10-01T03:28:44.357588+00:00 app[web.1]: raise ImportError(
2020-10-01T03:28:44.357588+00:00 app[web.1]: ImportError:
2020-10-01T03:28:44.357589+00:00 app[web.1]:
2020-10-01T03:28:44.357589+00:00 app[web.1]: Your WhiteNoise configuration is incompatible with WhiteNoise v4.0
2020-10-01T03:28:44.357590+00:00 app[web.1]: This can be fixed by following the upgrade instructions at:
2020-10-01T03:28:44.357590+00:00 app[web.1]: http://whitenoise.evans.io/en/stable/changelog.html#v4-0
2020-10-01T03:28:44.357590+00:00 app[web.1]:
2020-10-01T03:28:44.357591+00:00 app[web.1]:
2020-10-01T03:28:44.357945+00:00 app[web.1]: [2020-10-01 12:28:44 +0900] [10] [INFO] Worker exiting (pid: 10)
2020-10-01T03:28:44.641942+00:00 app[web.1]: [2020-10-01 03:28:44 +0000] [4] [INFO] Shutting down: Master
2020-10-01T03:28:44.642070+00:00 app[web.1]: [2020-10-01 03:28:44 +0000] [4] [INFO] Reason: Worker failed to boot.

I've tried running gunicorn and import whitenoise. like import from whitenoise.django import DjangoWhiteNoise and add MIDDLEWARE 'whitenoise.middleware.WhiteNoiseMiddleware', and define staticfiles_storage like STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' but it didn't work...

I've seen heroku django tutorials, and mozila tutorials https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Deployment and https://devcenter.heroku.com/articles/django-app-configuration so I've tried change configuration about static files, and import whitenoise. but it didn't help.

What makes Import Error? How can I deploy my site?

1

There are 1 answers

0
Karol Oleksy On BEST ANSWER

As you can see below, your configuration is incompatible with WhiteNoise v4.0. (Maybe the tutorial wasn't be updated). Here you can check changes in the new version.

2020-10-01T03:28:44.338202+00:00 app[web.1]: ImportError:
2020-10-01T03:28:44.338202+00:00 app[web.1]:
2020-10-01T03:28:44.338203+00:00 app[web.1]: Your WhiteNoise configuration is incompatible with WhiteNoise v4.0
2020-10-01T03:28:44.338203+00:00 app[web.1]: This can be fixed by following the upgrade instructions at:
2020-10-01T03:28:44.338203+00:00 app[web.1]: http://whitenoise.evans.io/en/stable/changelog.html#v4-0

Try to use

from whitenoise import WhiteNoise

Instead of

from whitenoise.django import DjangoWhiteNoise