Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 金字塔找不到我的模板文件_Python_Pyramid_Jinja2_Pylons - Fatal编程技术网

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

Python 金字塔找不到我的模板文件,python,pyramid,jinja2,pylons,Python,Pyramid,Jinja2,Pylons,我学习了金字塔教程,一切都很好。然后我为Pyramid安装了jinja2,并将必要的代码行添加到我的development.ini文件中。我的模板按预期在指定位置找到。它们也按照我的预期呈现。然而,在我的计算机上重新启动,然后使用Alembic和SQLAlchemy之后,我去查看我的站点,现在它找不到模板目录。具体来说,我得到的错误是: jinja2.exceptions.TemplateNotFound TemplateNotFound: my_project:templates/index

我学习了金字塔教程,一切都很好。然后我为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
/project
/项目环境
/垃圾箱
/发展网
/lib#“python2.7/站点包/等”所在的位置
/我的计划
/我的_项目#“主”项目文件夹
/__初始值
/models.py
/剧本
/静止的
/模板
/
/views.py
两个问题:

  • 我该如何解决这个问题?不管出于什么原因,我的资产规范没有像以前那样工作,我不确定要“指定”什么来解决这个问题
  • 当我查看
    。/python2.7/site packages/my_project-0.0-py2.7.egg/my_project/templates
    时,我从我的“main”
    /my_project
    目录中找到了我的文件的“残余”。特别是,
    模板
    文件夹及其内容不存在,但是,
    视图
    模型
    初始化
    等存在(尽管这些文件的任何最新更新都不存在)。当我更新“主”my_项目文件时,Pyramid无法识别这些更改。我需要进入我的“…2.7.egg”文件,并在那里进行更改,以便金字塔能够识别它们。为什么会这样 我的
    development.ini
    文件是否未正确配置?或者,这是完全无关的吗

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


    感谢您的帮助。

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

    或者只需添加

    config.add_jinja2_search_path("templates")
    

    在您的金字塔配置中

    如何尝试呈现模板?在my views.py文件中,例如:@view\u config(renderer='templates/index.jinja2',route\u name='index\u handler')。然后,我将路由添加到我的_uinit__uu.py文件中。我还尝试在uuu init_uuuuu中添加“config.include('pyramid_jinja2')”但没有效果。请尝试以下方法:@view_config(renderer='index.jinja2',route_name='index_handler')no-need'templates/“我刚刚尝试过,不幸的是,它没有工作。”。谢谢你的建议!你让我在这里过得很开心。非常感谢。我一定是无意中运行了“setup.py install”命令,或者……什么的。啊。但不管怎样,一切都恢复正常了。非常感谢。