![](/img/trans.png)
[英]"No web processes running" error when trying to reach my Heroku app (Python/Flask)
[英]im trying to host my flask api on heroku, but when passing the path to my app, i get an import error
我得到的错误:ImportError:尝试使用没有已知父包的相对导入
我的文件夹结构:
-后端
__init__
.py__init.py:
has the create app method
运行.py:
from . import create_app
if __name__ == "__main__":
app = create_app("config")
app.run(debug=True)
过程文件:
网络:gunicorn 运行:应用程序
编辑:
我重新安排了应用程序结构,其中:
- 初始化.py
- 简介
- 扩展程序.py
- 源代码
- 初始化文件
- 运行.py
初始化.py:
empty
src/init.py:
from ..extensions import db,migrate
has the create app method
源/运行.py:
from src import create_app
if __name__ == "__main__":
app = create_app("config")
app.run(debug=True)
所以现在新的错误是:
编辑#2:要指出的另一件事是,假设在 run.py 中我执行以下操作: from Backend import create_app()
我收到以下错误:没有名为“后端”的模块,为什么会这样?
有没有人遇到过类似的问题,我能做些什么来解决它?
根据新信息更新我认为我们可以让您回家。
1.) 将run.py
旁边(相同的目录)。 那个“运行文件”应该在 Heroku 的/app/run.py
的顶级目录中。
文件组织的一个很好的基本模式是“模块”所有内容(带有__init__.py
文件的目录)。 然后所有导入都来自顶级run.py
[运行进程的位置] 行走子文件夹。 只要您向下遍历导入,事情就会保持相当稳定。 如果您尝试向上导航目录,则会出现问题。
解决任何导入问题,一开始可能会很棘手,但很快就会成为一种思维方式。
2.) 将extensions.py
移动到src
(现在)并from src import foo
以下是我在 Heroku 中运行的所有活动 Django 和类似应用程序中的模式。 我多年来一直使用的相同布局。 在以下屏幕截图中, manage.py
是您的run.py
的 Django 等价物。 我没有在这个应用程序上使用 docker 映像,所以这不在等式中,只是代码和依赖项。
您的问题是完全可以理解的,其他 Python 开发人员在这样做时很容易认为这是理所当然的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.