python - 如何修复 Python 中的“ValueError:未知提取方法'jinja2'”错误?(Jinja2 国际化?)
问题描述
我需要从我的金字塔网络应用程序中提取 jinja2 文件中的消息,Babel 具有三种默认提取方法(javascript、python、忽略)。如何添加 Jinja2 提取方法?
我所有的包都更新了(pyramid、setuptools、babel、jinja2)。
我的 setup.py 文件和 setup.cfg 文件在同一个目录中,我python setup.py develop
在终端上使用过,在从 py 文件中成功提取一些消息后发生错误,错误 => ValueError: Unknown extraction method 'jinja2'
:
# from distutils.core import setup
# # from babel.messages import frontend
from setuptools import setup
import setuptools
setuptools.dist.Distribution(dict(setup_requires='Babel')) # for message_extractors line below (else warnings / errors)
requires = [
'pyramid', 'peewee', 'configparser', 'khayyam', 'Babel',
'lingua', 'pyramid_redis_sessions', 'bcrypt', 'tornado', 'jinja2', 'pyramid-jinja2'
]
setup(name='Genetic',
install_requires=requires,
entry_points="""
[paste.app_factory]
main = Genetic:main
""",
author="Javad Asoodeh",
author_email="##",
message_extractors={'.': [
('Genetic/**.py', 'python', None),
('Genetic/**.jinja2', 'jinja2', {'input_encoding': 'utf-8'}),
('Genetic/template/base/**.jinja2', 'jinja2', {'input_encoding': 'utf-8'}),
('Genetic/templates/**.html', 'jinja2', {'input_encoding': 'utf-8'}),
('Genetic/templates/**.jinja2', 'jinja2', {'input_encoding': 'utf-8'}),
]},
)
我的 Babel 配置文件setup.cfg
:
[jinja2: **/templates/**.jinja2]
extensions=jinja2.ext.i18n
encoding = utf-8
[compile_catalog]
directory = Genetic/locale
domain = Genetic
statistics = true
[extract_messages]
add_comments = TRANSLATORS:
output_file = Genetic/locale/Genetic.pot
width = 80
input_dirs = Genetic/templates
[init_catalog]
domain = Genetic
input_file = Genetic/locale/Genetic.pot
output_dir = Genetic/locale
[update_catalog]
domain = Genetic
input_file = Genetic/locale/Genetic.pot
output_dir = Genetic/locale
previous = true
解决方案
我通过使用 pip 包管理器手动重新安装 Jinja2 库和 babel 库来修复此错误。
推荐阅读
- algorithm - 如何避免嵌套 For 循环来选择组合?
- sql-server - 如何使用varchar数据类型的partitionColumn读取scala spark上的表?
- html - 背景图像不适用于 Firefox 48 以上版本和其他浏览器中的选择选项
- angular - Angular Material Select 在选项字段中显示函数名称
- android - 如何在应用程序的 Android 代码中创建主题
- python - django“only()”方法似乎不能正常工作
- r - R中的检查点更新问题
- permissions - 如何授予其他人在 BigQuery 中阅读我的 INFORMATION_SCHEMA.SCHEMATA 的权限?
- kubernetes - Kubernetes Pod (Plex) 上的连接被拒绝
- javascript - 之间的区别??和 ||