Python3中的相对导入,“无法导入名称”

时间:2016-01-06 15:53:10

标签: api flask python-3.4

我正在使用来自其他项目的代码构建基于烧瓶的API,而我的/app_v1/rotues.py文件包含文件from __init__ import api,但是如果从/run.py调用则会导致错误,但是不然。我得到的确切错误是:

ImportError: cannot import name 'api'

我不确定如何继续,因为在较小的项目上进行复制并且不再发生同样的错误。

我尝试过的事情:

  • .__init__..api_v1.__init__等的所有典型排列,通常会导致错误SystemError: Parent module '' not loaded, cannot perform relative import
  • 如果我包含API Blueprint的名称(来自Flask),我可以获取代码,但是API不会注册所有路由,因此没用。
  • 回滚,但是我遇到了一些问题,其中一些代码是用Python兑现的,因此也没有完全正常工作,我不想太远了。

粗略的文件结构可能很有帮助:

.
|-app_v1
|  |-__init__.py
|  |-routes.py
|-run.py

1 个答案:

答案 0 :(得分:0)

我认为您需要在 __init__.py 文件中写入以下内容

from routes import *

当您编写此内容并在 run.py 中编写以下内容时,它应该可以工作。

from app_v1 import routes