当我尝试在Jinja2中使用以下内容创建packageLoader时:
loader=jinja2.PackageLoader( 'cyan', 'templates')
我得到一个错误:
In [2]: loader=PackageLoader( 'cyan', 'templates')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
~/work/venvs/CYAN/lib/python3.7/site-packages/pkg_resources/__init__.py in get_provider(moduleOrReq)
358 try:
--> 359 module = sys.modules[moduleOrReq]
360 except KeyError:
KeyError: 'cyan'
During handling of the above exception, another exception occurred:
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-9f5a5a8d0f55> in <module>
----> 1 loader=PackageLoader( 'cyan', 'templates')
~/work/venvs/CYAN/lib/python3.7/site-packages/jinja2/loaders.py in __init__(self, package_name, package_path, encoding)
222 from pkg_resources import DefaultProvider, ResourceManager, \
223 get_provider
--> 224 provider = get_provider(package_name)
225 self.encoding = encoding
226 self.manager = ResourceManager()
~/work/venvs/CYAN/lib/python3.7/site-packages/pkg_resources/__init__.py in get_provider(moduleOrReq)
359 module = sys.modules[moduleOrReq]
360 except KeyError:
--> 361 __import__(moduleOrReq)
362 module = sys.modules[moduleOrReq]
363 loader = getattr(module, '__loader__', None)
ModuleNotFoundError: No module named 'cyan'
这以前有用。我还不知道最近的变化会导致什么。有一个templates目录,它有init.py。你知道吗
这个:HTML templating using Jinja2 No module named your app看起来是相同的问题,但是建议不要使用PackageLoader。由于我的代码在两周前运行,我担心我弄坏了其他东西,而这只是一个症状,所以如果我能弄清楚到底发生了什么,我宁愿不要让症状消失。你知道吗
更奇怪的是“青色”是程序的名字。在文档中,它使用“yourapplication”,所以我假设它可以是任何字符串,并使用它在内部命名。。。你知道吗
根据错误显示:
在同一行中有一个错误,因为当我们执行以下代码时:
变量模块是
key:<ModuleName>
和value:<ModuleObject>
的字典根据您的代码,您试图从上面的dictionary对象获取
cyan
模块,但是没有任何键可以与模块名“cyan”匹配,因为cyan.py
既不在本地目录中,也不在系统路径中。你知道吗在同一目录或python的模块路径中创建一个名为
cyan.py
的模块将在dictionary对象中获取一个以上的模块,现在可以使用sys.modules['cyan']
调用它。相关问题 更多 >
编程相关推荐