我有一个烧瓶应用程序,其结构基本上如下:
app/
__init__.py
myapp.py
common/
tool1.py
tool2.py
web/
__init__.py
views.py
api/
api_impl.py
worker/
__init__.py
worker.py
tasks.py
我在一个我在几个地方使用的重要对象中进行了初始化,我myapp.py
可以从. 我已经能够在多个地方使用和导入.common/tool1.py
web/api/api_impl.py
from myapp import object
tool1
tool2
web/
myapp.py
from common.tool1 import tool1_def
其他相关事实在蓝图上myapp.py
有一个声明,并且是空的。包含路线的蓝图定义。import web
app/__init__.py
worker/__init__.py
web/__init__.py
我可以毫无问题地使用 gunicorn 运行该应用程序,但是当我尝试使用我的 worker 运行时,python app/worker/worker.py
我得到了错误ModuleNotFoundError: No module named 'myapp'
。worker.py
正在尝试导入 中定义的相同对象myapp.py
。
我只是不明白为什么我可以运行该应用程序并且它可以工作,但是当我尝试运行工作程序时却没有!在这种情况下,我绝对没有完全理解导入系统,而且我在网上阅读的所有内容似乎都没有完全阐明这一点。