没有找到模板。是否有一个钩子来查找被调用的目录/文件?

2024-04-26 05:55:53 发布

您现在位置:Python中文网/ 问答频道 /正文

这个真让我讨厌。你知道吗

我会先说我的本地机器一切正常。但是在服务器上,无论我做什么,结果都是“找不到uri的模板:…”

在我的本地机器上,我在MacOSX上使用了一个Linux虚拟机。我研究了文件名之间的大小写敏感问题。没有骰子。你知道吗

我最初通过在本地调用文件使一切正常。你知道吗

为了确认,我切换到使用mako.directories = app:templates配置,并将模板目录从应用程序视图打包到应用程序:模板文件夹-这是一个小写的新文件夹名称。你知道吗

这个配置不起作用。你知道吗

我决定说得更清楚些。你知道吗

所以我调用了我的mako文件:

 @view_config(renderer='myapp:templates/template1.mak')
 def template1(self):
      pass

还是没有骰子。你知道吗

尝试在本地明确表示。你知道吗

 @view_config(renderer='templates/template2.mak')
 def template2(self):
      pass

仍然失败。你知道吗

当然,当在config中使用mako.directories时,它仍然可以工作。你知道吗

 @view_config(renderer='template3.mak')
 def template3(self):
      pass

有没有一种方法可以钩住它来查看被调用的特定文件路径? 比“模板”大得多的东西/模板.mak'? 你知道吗

以下是金字塔TopLevelException中URI的外观,以供参考:

Exception
=========
"Can not locate template for uri %r" % uri)
mako.exceptions.TopLevelLookupException: Can not locate template for uri
========

'app:templates/template1.mak    
'app.views:templates/template2.mak'

Tags: 文件selfview模板configappmakodef
1条回答
网友
1楼 · 发布于 2024-04-26 05:55:53

我知道它为什么不起作用了!你知道吗

在加载金字塔应用程序之前,我在服务器上运行python setup.py install。所有python源代码都被移动到我的VENV中的site-packages文件夹中,但(重要的是)我的MAKO文件没有移动到那里。你知道吗

当我运行python setup.py develop时,因为我的包是作为符号链接安装的,所以我的MAKO文件仍然存在于我的项目中。你知道吗

本以为名称会表明,否则,金字塔项目使用非python文件(如模板)不能安装!他们必须保持这种发展状态。你知道吗

如果我们可以用python setup.py develop运行这些,请在评论中向我指出这一点!我可能遗漏了什么。你知道吗

编辑1:

这是正确的方向,但我不知道如何使用它:

https://docs.python.org/2/distutils/setupscript.html#installing-package-data

(编辑3):Including non-Python files with setup.py

编辑2:

这在Preparing a pyramid app for production中提示了我

相关问题 更多 >