1

我按照 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文件夹及其内容不存在,但 , ,views等存在(尽管这些文件的任何最近更新都不存在)。当我对“主要” my_project 文件进行更新时,Pyramid 无法识别这些更改。我需要进入我的“...2.7.egg”文件,并在那里进行更改以便 Pyramid 识别它们。为什么会这样?models__init__

我的development.ini文件配置不正确吗?或者,这是完全不相关的事情吗?

我很困惑,不知道该怎么办。非常感谢任何想法、建议和直截了当的答案。

谢谢你的帮助。

4

2 回答 2

2

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

于 2013-07-03T09:57:51.180 回答
0

或者只是通过添加

config.add_jinja2_search_path("templates")

进入你的金字塔配置

于 2016-09-20T10:41:31.597 回答