【发布时间】:2017-05-09 21:41:31
【问题描述】:
我有一个 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 类。
以前我有:
from app.model.exercise import Exercise
但这在 Python2.7 中不起作用。
附加到sys.path 似乎也不起作用。
这样做的正确方法是什么?
【问题讨论】:
-
根包在哪里?你的主模块是在
app还是其他地方?您是否有没有在此处显示的__init__.py文件,或者这实际上是包结构?很可能from app.model.exercise或from model.exercise是正确答案,但无论哪种方式,您都需要至少在model/目录中的__init__.py。 -
@DanielPryden 我现在会更新结构。
-
您没有在此处显示的任何命名冲突?
-
如果它适用于 Python 3.x 但不适用于 2.x,
from __future__ import absolute_import是否解决了它?这将表明路径上的相对和绝对导入冲突。 -
@DmitryPolonskiy 如果我理解正确的话,不。
标签: python python-2.7 python-3.x flask