python - Pyramid 找不到子模块的包含函数
问题描述
我想将路由配置正确外包到相应的模块中。对于那个金字塔文档指定我可以定义:
def includeme(config):
config.add_route('foo_list', '/foo', factory='.api.foo.models.example_factory')
我的文件夹结构如下:
/projectname/api/foo
在示例文件夹中,有以下文件:
__init__.py (with includeme()-function)
views.py
models.py
现在我需要在应用程序初始化中包含这个“foo”模块。这就是我定义的原因:
文件:
/projectname/__init__.py
代码:
def main(global_config, **settings):
config.include('.api.foo')
但是当我尝试运行应用程序时,金字塔会抛出以下异常:
ModuleNotFoundError: No module named 'projectname.api.foo.api'
(这是复制和粘贴的 - 它搜索 /api/foo/api - 这是不正确的)
有没有我没有考虑到的配置因素?我尝试了以下方法:
Changing the /projectname/__init__.py code into:
config.include('.api.foo.includeme')
这会导致相同的错误。
如果我将函数从 includeme 重命名为其他任何内容,它会说
pyramid.exceptions.ConfigurationError: module 'projectname.api.foo' has no attribute 'includeme'
有什么建议吗?
解决方案
推荐阅读
- android - 出现异常:在 Android 9 上显示辅助表单时出现分段错误 (11)
- laravel - 如何在 laravel 路由中添加多个动态参数?
- c# - Vector3.MoveTowards 不适用于 2D 寻路
- javascript - 为什么 uibmodals 只能在第二次调用时拖动?
- visual-studio-2019 - 在 Web 加载项中获取 Outlook 附件信息
- android - 如何修复“找不到符号 xxx.xxxBindingImple”
- riscv - RISC-V 处理器在处理异常时如何检测模式?
- javascript - Google Drive api 反应原生
- php - 如何按 ASC 或 DESC 日期对表格进行排序?
- html - 如何使输入文本栏透明但将文本保持在实体内部?