![](/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.