繁体   English   中英

金字塔找不到我的模板文件

[英]Pyramid not finding my template files

我遵循了Pyramid教程,一切正常。 然后,我为Pyramid安装了jinja2,并将必要的代码行添加到了development.ini文件中。 我的模板按预期在指定位置找到。 它们也按照我的预期进行渲染。 但是,在计算机上重新启动之后,然后使用Alembic和SQLAlchemy,我去查看了我的站点,现在找不到模板目录。 具体来说,我得到的错误是:

jinja2.exceptions.TemplateNotFound

TemplateNotFound: my_project:templates/index.jinja2;     
asset=/Users/John/project/projectenv/lib/python2.7/site-packages/my_project-0.0-py2.7.egg/my_project/templates/index.jinja2; 
searchpath=['/Users/John/project/projectenv/lib/python2.7/site-packages/my_project-0.0-py2.7.egg/my_project/templates']

在我的development.ini文件中,我指定了:

[app:main]
use = egg:my_project
jinja2.directories = my_project:templates

对于某些参考,我的文件结构如下所示:

/project
    /projectenv
        /bin
           /development.ini
        /lib  # where the "python2.7/site-packages/etc." is located
        /my_project
           /my_project  # "main" project folder
               /__init__.py
               /models.py
               /scripts
               /static
               /templates
                   /<the templates I would like to use>
               /views.py

两个问题:

  1. 我该如何解决? 不管出于什么原因,我的资产规范都无法按原样工作,并且我不确定要“解决”这一问题。
  2. 当我查看../python2.7/site-packages/my_project-0.0-py2.7.egg/my_project/templates ,我从“主” /my_project目录中找到了文件的“残余”。 特别是,不存在templates文件夹及其内容,但没有viewsmodels__init__等(尽管不存在对这些文件的任何最新更新)。 当我对“主要” my_project文件进行更新时,Pyramid无法识别这些更改。 我需要进入我的“ ... 2.7.egg”文件,并在此处进行更改,以使Pyramid识别它们。 为什么会这样呢?

我的development.ini文件配置不正确吗? 还是,这完全无关?

我感到困惑,不知道该怎么办。 任何想法,建议和直截了当的答案将不胜感激。

谢谢你的帮助。

听起来好像您在某个时候运行了python setup.py install ,这导致您的项目被安装到环境的site-packages目录中。 从站点程序包中删除“ my_project”目录/文件并运行python setup.py develop创建项目到站点程序包的符号链接,您的更改应立即生效。 并且当该模块在站点包中正确可用时,模板查找也应该起作用。

或仅通过添加

config.add_jinja2_search_path("templates")

进入您的金字塔配置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM