@Aslamb
Нравится программирование и все остальное

Почему команда pybabel выдает ошибку?

Мир!
Читал книгу Мигеля Гринберга "Мега-Учебник 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.


Скажите, пожалуйста, как решить эту проблему?
  • Вопрос задан
  • 383 просмотра
Пригласить эксперта
Ответы на вопрос 2
igorzakhar
@igorzakhar
Попробуй обновить "pip":
pip install -U pip --force-reinstall

В оригинальной версии этого туториала можно найти комментарий самого Мигеля Гринберга по этой ошибке (комментарий #71):
I believe the error that you have was a bug in pip. You may want to try upgrading the pip that you have in your virtual environment.

https://blog.miguelgrinberg.com/post/the-flask-me...
Ответ написан
Комментировать
@Aslamb Автор вопроса
Нравится программирование и все остальное
Помогла команда pip install --upgrade setuptools
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы