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

时间:2013-07-03 01:13:29

标签: python pyramid jinja2 pylons

我遵循金字塔教程,一切正常。然后我为金字塔安装了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__等等(虽然这些文件的最新更新不是当下)。当我对“main”my_project文件进行更新时,Pyramid无法识别这些更改。我需要进入我的“... 2.7.egg”文件,并在那里进行更改以便Pyramid识别它们。为什么会这样?
  3. 我的development.ini文件配置不正确吗?或者,这是完全不相关的事情吗?

    我很困惑,不知道该怎么做。任何想法,建议和直接答案都非常感谢。

    谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

或仅添加

config.add_jinja2_search_path("templates")

进入金字塔配置