![](/img/trans.png)
[英]Why did Heroku crash (code=H10) when deploying my Flask app that runs well locally?
[英]flask app runs locally but crashes when deploying to heroku
我有一個 flask 應用程序在部署到 Heroku 時崩潰,該應用程序在 Procfile gunicorn wsgi:app
中使用完全相同的命令在本地運行良好
相關heroku日志:
2021-02-02T00:10:31.529605+00:00 app[web.1]: File "/app/wsgi.py", line 4, in <module>
2021-02-02T00:10:31.529605+00:00 app[web.1]: app = create_app()
2021-02-02T00:10:31.529606+00:00 app[web.1]: File "/app/app/__init__.py", line 15, in create_app
2021-02-02T00:10:31.529606+00:00 app[web.1]: from . import routes
2021-02-02T00:10:31.529606+00:00 app[web.1]: File "/app/app/routes.py", line 6, in <module>
2021-02-02T00:10:31.529606+00:00 app[web.1]: from package.reservation_factory import ReservationFactory
2021-02-02T00:10:31.529606+00:00 app[web.1]: File "/app/package/reservation_factory.py", line 2, in <module>
2021-02-02T00:10:31.529607+00:00 app[web.1]: from package.provider import ProviderReservation
2021-02-02T00:10:31.529607+00:00 app[web.1]: File "/app/package/provider.py", line 12, in <module>
2021-02-02T00:10:31.529607+00:00 app[web.1]: from package.reservation import Reservation
2021-02-02T00:10:31.529608+00:00 app[web.1]: ModuleNotFoundError: No module named 'package.reservation'
2021-02-02T00:10:31.529902+00:00 app[web.1]: [2021-02-02 00:10:31 +0000] [7] [INFO] Worker exiting (pid: 7)
.
├── Pipfile
├── Pipfile.lock
├── Procfile
├── app
│ ├── __init__.py
│ ├── forms.py
│ ├── routes.py
│ └── templates
│ ├── base.html
│ └── reservation.html
├── package
│ ├── __init__.py
│ ├── provider.py
│ ├── reservation.py
│ └── reservation_factory.py
├── runtime.txt
└── wsgi.py
您的項目結構的問題是缺少頂級__init__.py
文件。 該文件是制作 Python package 所必需的,您可以從中導入。
雖然不是強制性的,但許多項目 go 具有src
布局,如下所示:
❯ tree src/
src/
└── reservation_app
├── app
│ ├── forms.py
│ ├── __init__.py
│ ├── routes.py
│ └── templates
├── __init__.py
└── package
├── __init__.py
├── provider.py
├── reservation_factory.py
└── reservation.py
4 directories, 8 files
不過,您需要調整導入。
如果您想詳細了解為什么src
布局是一件好事,請查看這些博客文章
https://hynek.me/articles/testing-packaging/ https://web.archive.org/web/20170615032800/https://enotuniq.org/https://blog.ganssle.io/articles/2019/ 08/安裝測試。html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.