Мир!
Читал книгу Мигеля Гринберга
"Мега-Учебник Flask" ("Flask Mega Tutorial"), одновременно выполняя его инструкции. И вот дошел до 13 главы про ведение сайта на нескольких языках
I18n и L10n
И вот дошел до команды
pybabel extract -F babel.cfg -k _l -o messages.pot .
Она делает следующее:
Команда pybabel extract считывает файл конфигурации, указанный в параметре -F, а затем сканирует все файлы py и html в каталогах, соответствующих настроенным источникам, начиная с каталога, указанного в команде (текущий каталог или . в этом случае.) По умолчанию, pybabel будем искать _() как текстовый маркер, но я также использовал lazy вариант, который я импортировал как _l(), так что мне нужно сказать об этом инструменту поиска опцией -k _l. Параметр -o указывает имя выходного файла.
Более подробно можно узнать в самой главе этой книги
Когда я выполняю ее, мне выкидывает следующую ошибку:
~/microblog$ pybabel extract -F babel.cfg -k _l -o messages.pot .
extracting messages from app/__init__.py
extracting messages from app/email.py
extracting messages from app/errors.py
extracting messages from app/forms.py
extracting messages from app/models.py
extracting messages from app/routes.py
extracting messages from app/templates/404.html (extensions="jinja2.ext.autoescape,jinja2.ext.with_")
Traceback (most recent call last):
File "/home/asla/microblog/venv/bin/pybabel", line 11, in <module>
sys.exit(main())
File "/home/asla/microblog/venv/lib/python3.6/site-packages/babel/messages/frontend.py", line 911, in main
return CommandLineInterface().run(sys.argv)
File "/home/asla/microblog/venv/lib/python3.6/site-packages/babel/messages/frontend.py", line 835, in run
return cmdinst.run()
File "/home/asla/microblog/venv/lib/python3.6/site-packages/babel/messages/frontend.py", line 470, in run
for filename, lineno, message, comments, context in extracted:
File "/home/asla/microblog/venv/lib/python3.6/site-packages/babel/messages/extract.py", line 157, in extract_from_dir
dirpath=absname,
File "/home/asla/microblog/venv/lib/python3.6/site-packages/babel/messages/extract.py", line 212, in check_and_call_extract_file
strip_comment_tags=strip_comment_tags
File "/home/asla/microblog/venv/lib/python3.6/site-packages/babel/messages/extract.py", line 241, in extract_from_file
strip_comment_tags))
File "/home/asla/microblog/venv/lib/python3.6/site-packages/babel/messages/extract.py", line 303, in extract
func = entry_point.load(require=True)
File "/home/asla/microblog/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2228, in load
self.require(*args, **kwargs)
File "/home/asla/microblog/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2245, in require
items = working_set.resolve(reqs, env, installer)
File "/home/asla/microblog/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 808, in resolve
if not req_extras.markers_pass(req):
File "/home/asla/microblog/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 993, in markers_pass
return not req.marker or any(extra_evals) or req.marker.evaluate()
File "/home/asla/microblog/venv/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/markers.py", line 278, in evaluate
return _evaluate_markers(self._markers, current_environment)
File "/home/asla/microblog/venv/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/markers.py", line 203, in _evaluate_markers
lhs_value = _get_env(environment, lhs.value)
File "/home/asla/microblog/venv/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/markers.py", line 185, in _get_env
"{0!r} does not exist in evaluation environment.".format(name)
pkg_resources.extern.packaging.markers.UndefinedEnvironmentName: 'extra' does not exist in evaluation environment.
Скажите, пожалуйста, как решить эту проблему?