金字塔模块的搜索路径

时间:2014-12-17 13:16:27

标签: python pyramid pylons

我有一个金字塔应用程序,我按以下方式将模型和视图拆分为单独的文件:

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__)))

但这就是那种愚蠢的行为。是否有更好的金字塔特定解决方案?

2 个答案:

答案 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

我认为这不是最好的方式,但它对我来说很好。