Python 2.7中相对导入的正确方法

Python 2.7中相对导入的正确方法,python,python-2.7,python-3.x,flask,Python,Python 2.7,Python 3.x,Flask,我有一个烧瓶,我正在从Python3迁移到Python2.7 我的项目结构如下: app/ model/ __init__.py exercise.py utils/ __init__.py loader.py exercise.py类包含类exercise。我需要在loader.py文件中使用它 app文件夹本身位于Heroku项目的顶层,该项目有一个run.py文件,该文件从Loader.py调用Loader类

我有一个烧瓶,我正在从
Python3
迁移到
Python2.7

我的项目结构如下:

app/
    model/
        __init__.py
        exercise.py
    utils/
        __init__.py
        loader.py
exercise.py
类包含类
exercise
。我需要在
loader.py
文件中使用它

app
文件夹本身位于Heroku项目的顶层,该项目有一个
run.py
文件,该文件从
Loader.py
调用
Loader

以前我有:

from app.model.exercise import Exercise
但这在Python2.7中不起作用

附加到
sys.path
似乎也不起作用


正确的方法是什么

文件夹不是Python包,除非它包含
\uuuu init\uuuu.py
。因此,除非
app
文件夹包含
\uuuu init\uuuuuuuuuuupy
文件,否则无法从app导入

根包在哪里?您的主要模块是在
应用程序中还是在其他地方?您是否有未在此处显示的
\uuuu init\uuuuu.py
文件,或者这实际上就是包结构?很可能是app.model.exercise中的
,或者是model中的
。exercise
是正确答案,但无论如何,至少在
model/
目录中需要
\uuu init\uuuu.py
。@DanielPryden我现在就更新结构。这里没有显示任何命名冲突吗?如果它在Python3.x上工作,但在2.x上不工作,那么
from\uuuu future\uuuuu绝对导入
解决了吗?这表示路径上存在冲突的相对导入和绝对导入。@dmitrypoloskiy如果我理解正确,则不会。这就是问题所在。谢谢