我有一个金字塔应用程序,我按以下方式将模型和视图拆分为单独的文件:
How do I split models.py into different files for different models in Pyramid?
视图的一个小后果是,因为我将它们放在"视图中的单独视图文件中。包是他们找不到models.py
,现在是models
包,因为它位于父目录中。
也就是说,它曾经是:
models.py
views.py
现在它:
views/__init__.py
views/view1.py
views/view2.py
models/__init__.py
models/model1.py
models/model2.py
因此,在视图中从models
导入会导致:
from models import (
ImportError: No module named models
现在,我可以通过在views/__init__.py
中添加以下路径搜索模块扩展来解决此问题:
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
但这就是那种愚蠢的行为。是否有更好的金字塔特定解决方案?
答案 0 :(得分:0)
这不是特定于金字塔的,它只是python。
参见https://docs.python.org/2/tutorial/modules.html#packages 有详细解释。
你想要
import models.model1
或者
from models.model2 import(...)
答案 1 :(得分:0)
我迟到了,但它可以帮助其他人。
要解决此问题,您需要指定项目名称。在您的情况下,如果项目名称为projet_name
,请导入您的模型。
from project_name.models.model1 import *
or
import project_name.models.model1
我认为这不是最好的方式,但它对我来说很好。