[英]heroku gunicorn / Flask App Running Error
我正在嘗試將我的第一個 flask 應用程序推送到 heroku 但我無法弄清楚問題所在。 我已經多次嘗試通過跟蹤錯誤來找到問題,但我覺得我在旋轉。這個應用程序在本地工作,但不在 heroku
我嘗試了許多不同的方法,並手動更正了 requirements.txt 版本以消除版本問題,但我無法弄清楚當前的問題是什么。
這是heroku 日志 --tail output:
$ heroku logs --tail
2021-03-27T17:31:01.216069+00:00 app[web.1]: return self.load_wsgiapp()
2021-03-27T17:31:01.216070+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2021-03-27T17:31:01.216070+00:00 app[web.1]: return util.import_app(self.app_uri)
2021-03-27T17:31:01.216070+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
2021-03-27T17:31:01.216071+00:00 app[web.1]: mod = importlib.import_module(module)
2021-03-27T17:31:01.216071+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
2021-03-27T17:31:01.216072+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-03-27T17:31:01.216072+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2021-03-27T17:31:01.216073+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2021-03-27T17:31:01.216073+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
2021-03-27T17:31:01.216080+00:00 app[web.1]: ModuleNotFoundError: No module named 'app'
2021-03-27T17:31:01.216311+00:00 app[web.1]: [2021-03-27 17:31:01 +0000] [9] [INFO] Worker exiting (pid: 9)
2021-03-27T17:31:01.257899+00:00 app[web.1]: [2021-03-27 17:31:01 +0000] [10] [INFO] Booting worker with pid: 10
2021-03-27T17:31:01.271113+00:00 app[web.1]: [2021-03-27 17:31:01 +0000] [10] [ERROR] Exception in worker process
2021-03-27T17:31:01.271116+00:00 app[web.1]: Traceback (most recent call last):
2021-03-27T17:31:01.271116+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2021-03-27T17:31:01.271117+00:00 app[web.1]: worker.init_process()
2021-03-27T17:31:01.271117+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
2021-03-27T17:31:01.271118+00:00 app[web.1]: self.load_wsgi()
2021-03-27T17:31:01.271118+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2021-03-27T17:31:01.271119+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2021-03-27T17:31:01.271119+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2021-03-27T17:31:01.271120+00:00 app[web.1]: self.callable = self.load()
2021-03-27T17:31:01.271120+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2021-03-27T17:31:01.271120+00:00 app[web.1]: return self.load_wsgiapp()
2021-03-27T17:31:01.271121+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2021-03-27T17:31:01.271121+00:00 app[web.1]: return util.import_app(self.app_uri)
2021-03-27T17:31:01.271122+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
2021-03-27T17:31:01.271122+00:00 app[web.1]: mod = importlib.import_module(module)
2021-03-27T17:31:01.271123+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
2021-03-27T17:31:01.271123+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-03-27T17:31:01.271123+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2021-03-27T17:31:01.271124+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2021-03-27T17:31:01.271124+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
2021-03-27T17:31:01.271199+00:00 app[web.1]: ModuleNotFoundError: No module named 'app'
2021-03-27T17:31:01.271576+00:00 app[web.1]: [2021-03-27 17:31:01 +0000] [10] [INFO] Worker exiting (pid: 10)
2021-03-27T17:31:01.395630+00:00 app[web.1]: [2021-03-27 17:31:01 +0000] [4] [INFO] Shutting down: Master
2021-03-27T17:31:01.395757+00:00 app[web.1]: [2021-03-27 17:31:01 +0000] [4] [INFO] Reason: Worker failed to boot.
2021-03-27T17:31:01.525831+00:00 heroku[web.1]: Process exited with status 3
2021-03-27T17:31:01.610510+00:00 heroku[web.1]: State changed from starting to crashed
2021-03-27T17:31:01.614922+00:00 heroku[web.1]: State changed from crashed to starting
2021-03-27T17:31:03.000000+00:00 app[api]: Build succeeded
2021-03-27T17:31:09.148954+00:00 heroku[web.1]: Starting process with command `gunicorn app:app`
2021-03-27T17:31:11.566273+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [4] [INFO] Starting gunicorn 20.0.4
2021-03-27T17:31:11.566853+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [4] [INFO] Listening at: http://0.0.0.0:56319 (4)
2021-03-27T17:31:11.566948+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [4] [INFO] Using worker: sync
2021-03-27T17:31:11.571477+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [9] [INFO] Booting worker with pid: 9
2021-03-27T17:31:11.577573+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [9] [ERROR] Exception in worker process
2021-03-27T17:31:11.577574+00:00 app[web.1]: Traceback (most recent call last):
2021-03-27T17:31:11.577575+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2021-03-27T17:31:11.577576+00:00 app[web.1]: worker.init_process()
2021-03-27T17:31:11.577576+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
2021-03-27T17:31:11.577576+00:00 app[web.1]: self.load_wsgi()
2021-03-27T17:31:11.577577+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2021-03-27T17:31:11.577578+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2021-03-27T17:31:11.577578+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2021-03-27T17:31:11.577579+00:00 app[web.1]: self.callable = self.load()
2021-03-27T17:31:11.577579+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2021-03-27T17:31:11.577580+00:00 app[web.1]: return self.load_wsgiapp()
2021-03-27T17:31:11.577580+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2021-03-27T17:31:11.577581+00:00 app[web.1]: return util.import_app(self.app_uri)
2021-03-27T17:31:11.577581+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
2021-03-27T17:31:11.577582+00:00 app[web.1]: mod = importlib.import_module(module)
2021-03-27T17:31:11.577582+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
2021-03-27T17:31:11.577583+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-03-27T17:31:11.577583+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2021-03-27T17:31:11.577583+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2021-03-27T17:31:11.577584+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
2021-03-27T17:31:11.577589+00:00 app[web.1]: ModuleNotFoundError: No module named 'app'
2021-03-27T17:31:11.577776+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [9] [INFO] Worker exiting (pid: 9)
2021-03-27T17:31:11.580125+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [10] [INFO] Booting worker with pid: 10
2021-03-27T17:31:11.587148+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [10] [ERROR] Exception in worker process
2021-03-27T17:31:11.587149+00:00 app[web.1]: Traceback (most recent call last):
2021-03-27T17:31:11.587150+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2021-03-27T17:31:11.587151+00:00 app[web.1]: worker.init_process()
2021-03-27T17:31:11.587151+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
2021-03-27T17:31:11.587152+00:00 app[web.1]: self.load_wsgi()
2021-03-27T17:31:11.587152+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2021-03-27T17:31:11.587152+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2021-03-27T17:31:11.587153+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2021-03-27T17:31:11.587154+00:00 app[web.1]: self.callable = self.load()
2021-03-27T17:31:11.587154+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2021-03-27T17:31:11.587154+00:00 app[web.1]: return self.load_wsgiapp()
2021-03-27T17:31:11.587155+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2021-03-27T17:31:11.587155+00:00 app[web.1]: return util.import_app(self.app_uri)
2021-03-27T17:31:11.587155+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
2021-03-27T17:31:11.587156+00:00 app[web.1]: mod = importlib.import_module(module)
2021-03-27T17:31:11.587156+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
2021-03-27T17:31:11.587156+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-03-27T17:31:11.587157+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2021-03-27T17:31:11.587160+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2021-03-27T17:31:11.587161+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
2021-03-27T17:31:11.587165+00:00 app[web.1]: ModuleNotFoundError: No module named 'app'
2021-03-27T17:31:11.587315+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [10] [INFO] Worker exiting (pid: 10)
2021-03-27T17:31:11.720435+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [4] [INFO] Shutting down: Master
2021-03-27T17:31:11.720548+00:00 app[web.1]: [2021-03-27 17:31:11 +0000] [4] [INFO] Reason: Worker failed to boot.
2021-03-27T17:31:11.788282+00:00 heroku[web.1]: Process exited with status 3
2021-03-27T17:31:11.923225+00:00 heroku[web.1]: State changed from starting to crashed
並且procfile是:
web: gunicorn app:app
heroku ps:scale web=1
項目文件結構如下:
E:.
├───flaskblog
│ ├───errors
│ │ └───__pycache__
│ ├───main
│ │ └───__pycache__
│ ├───posts
│ │ └───__pycache__
│ ├───static
│ │ └───profile_pics
│ ├───templates
│ │ ├───.vscode
│ │ └───errors
│ ├───users
│ │ └───__pycache__
│ ├───venv
│ │ ├───Include
│ │ ├───Lib
│ │ │ └───site-packages
│ │ │ ├───certifi
│ │ │ │ └───__pycache__
│ │ │ ├───certifi-2020.12.5.dist-info
│ │ │ ├───chardet
│ │ │ │ ├───cli
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───metadata
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───chardet-4.0.0.dist-info
│ │ │ ├───click
│ │ │ │ └───__pycache__
│ │ │ ├───click-7.1.2.dist-info
│ │ │ ├───dns
│ │ │ │ ├───rdtypes
│ │ │ │ │ ├───ANY
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───CH
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───IN
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───dnspython-2.1.0.dist-info
│ │ │ ├───email_validator
│ │ │ │ └───__pycache__
│ │ │ ├───email_validator-1.1.2.dist-info
│ │ │ ├───flask
│ │ │ │ ├───json
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───Flask-1.1.2.dist-info
│ │ │ ├───flask_sqlalchemy
│ │ │ │ └───__pycache__
│ │ │ ├───Flask_SQLAlchemy-2.4.4.dist-info
│ │ │ ├───flask_wtf
│ │ │ │ ├───recaptcha
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───Flask_WTF-0.14.3.dist-info
│ │ │ ├───idna
│ │ │ │ └───__pycache__
│ │ │ ├───idna-2.10.dist-info
│ │ │ ├───itsdangerous
│ │ │ │ └───__pycache__
│ │ │ ├───itsdangerous-1.1.0.dist-info
│ │ │ ├───jinja2
│ │ │ │ └───__pycache__
│ │ │ ├───Jinja2-2.11.3.dist-info
│ │ │ ├───markupsafe
│ │ │ │ └───__pycache__
│ │ │ ├───MarkupSafe-1.1.1.dist-info
│ │ │ ├───pip
│ │ │ │ ├───_internal
│ │ │ │ │ ├───cli
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───commands
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───distributions
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───index
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───models
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───network
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───operations
│ │ │ │ │ │ ├───build
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───install
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───req
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───resolution
│ │ │ │ │ │ ├───legacy
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───resolvelib
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───utils
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───vcs
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───_vendor
│ │ │ │ │ ├───cachecontrol
│ │ │ │ │ │ ├───caches
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───certifi
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───chardet
│ │ │ │ │ │ ├───cli
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───colorama
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───distlib
│ │ │ │ │ │ ├───_backport
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───html5lib
│ │ │ │ │ │ ├───filters
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───treeadapters
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───treebuilders
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───treewalkers
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───_trie
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───idna
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───msgpack
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───packaging
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───pep517
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───pkg_resources
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───progress
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───requests
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───resolvelib
│ │ │ │ │ │ ├───compat
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───toml
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───urllib3
│ │ │ │ │ │ ├───contrib
│ │ │ │ │ │ │ ├───_securetransport
│ │ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───packages
│ │ │ │ │ │ │ ├───backports
│ │ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ │ ├───ssl_match_hostname
│ │ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ ├───util
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───webencodings
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───pip-20.2.3.dist-info
│ │ │ ├───pkg_resources
│ │ │ │ ├───extern
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───_vendor
│ │ │ │ │ ├───packaging
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───pytz
│ │ │ │ ├───zoneinfo
│ │ │ │ │ ├───Africa
│ │ │ │ │ ├───America
│ │ │ │ │ │ ├───Argentina
│ │ │ │ │ │ ├───Indiana
│ │ │ │ │ │ ├───Kentucky
│ │ │ │ │ │ └───North_Dakota
│ │ │ │ │ ├───Antarctica
│ │ │ │ │ ├───Arctic
│ │ │ │ │ ├───Asia
│ │ │ │ │ ├───Atlantic
│ │ │ │ │ ├───Australia
│ │ │ │ │ ├───Brazil
│ │ │ │ │ ├───Canada
│ │ │ │ │ ├───Chile
│ │ │ │ │ ├───Etc
│ │ │ │ │ ├───Europe
│ │ │ │ │ ├───Indian
│ │ │ │ │ ├───Mexico
│ │ │ │ │ ├───Pacific
│ │ │ │ │ └───US
│ │ │ │ └───__pycache__
│ │ │ ├───pytz-2021.1.dist-info
│ │ │ ├───requests
│ │ │ │ └───__pycache__
│ │ │ ├───requests-2.25.1.dist-info
│ │ │ ├───setuptools
│ │ │ │ ├───command
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───extern
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───_distutils
│ │ │ │ │ ├───command
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───_vendor
│ │ │ │ │ ├───packaging
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───setuptools-49.2.1.dist-info
│ │ │ ├───sqlalchemy
│ │ │ │ ├───connectors
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───databases
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───dialects
│ │ │ │ │ ├───firebird
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───mssql
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───mysql
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───oracle
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───postgresql
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───sqlite
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───sybase
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───engine
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───event
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───ext
│ │ │ │ │ ├───declarative
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───orm
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───pool
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───sql
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───testing
│ │ │ │ │ ├───plugin
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───suite
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───util
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───SQLAlchemy-1.3.23.dist-info
│ │ │ ├───urllib3
│ │ │ │ ├───contrib
│ │ │ │ │ ├───_securetransport
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───packages
│ │ │ │ │ ├───backports
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───ssl_match_hostname
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───util
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───urllib3-1.26.3.dist-info
│ │ │ ├───werkzeug
│ │ │ │ ├───debug
│ │ │ │ │ ├───shared
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───middleware
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───wrappers
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───Werkzeug-1.0.1.dist-info
│ │ │ ├───wtforms
│ │ │ │ ├───csrf
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───ext
│ │ │ │ │ ├───appengine
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───csrf
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───dateutil
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───django
│ │ │ │ │ │ ├───templatetags
│ │ │ │ │ │ │ └───__pycache__
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───i18n
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ ├───sqlalchemy
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───fields
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───locale
│ │ │ │ │ ├───ar
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───bg
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───ca
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───cs_CZ
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───cy
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───de
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───de_CH
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───el
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───en
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───es
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───et
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───fa
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───fi
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───fr
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───he
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───hu
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───it
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───ja
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───ko
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───nb
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───nl
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───pl
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───pt
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───ru
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───sk
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───sv
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───tr
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───uk
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ ├───zh
│ │ │ │ │ │ └───LC_MESSAGES
│ │ │ │ │ └───zh_TW
│ │ │ │ │ └───LC_MESSAGES
│ │ │ │ ├───widgets
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───WTForms-2.3.3.dist-info
│ │ │ └───__pycache__
│ │ └───Scripts
│ └───__pycache__
└───__pycache__
提前感謝您的幫助!
PS:經過長時間的搜索和許多設置調整,解決方案是將名稱app.py
更改為main.py
然后更改 procfile web: gunicorn main:app
我希望這對與我面臨同樣問題的人有所幫助。
這是您應該查看的錯誤: 2021-03-27T17:31:11.587165+00:00 app[web.1]: ModuleNotFoundError: No module named 'app'
此錯誤的可能原因:
Procfile
沒有很好地聲明# This is how it should be:
web: flask db upgrade; gunicorn tinker:app
Procfile
以進程名稱開頭(在本例中,它是 web 應用程序,因此我們將使用web
)。 在冒號之后,您需要定義所需的命令。 最后,您需要聲明您的服務器。
project_folder
| ----------app.py # entry file
| ----------config.py
| ----------app/
| ---------- __init__.py
| ---------- routes.py
| ---------- templates/
| ---------- static/
從這個結構中可以看出,您的應用程序入口文件稱為app.py
。 如果您使用不同的結構,則此文件是您運行代碼的位置。 請注意,此名稱與應用程序子文件夾相同。
因此,當您在Procfile
中聲明 web 應用程序時,您應該首先將應用程序結構中的條目文件名重命名為其他名稱,例如my_entry_file.py
。 然后將其添加到Procfile
:
web: flask db upgrade; gunicorn my_entry_file:app
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.