Ошибка при использовании пеликан-quickstart "Нет модуля с именем html_parser"

Я решил попробовать pelican, но когда я запустил pelican-quickstart, я получаю следующий диалог:

$ pelican-quickstart
Traceback (most recent call last):
  File "/usr/local/bin/pelican-quickstart", line 9, in <module>
    load_entry_point('pelican==3.4.0', 'console_scripts', 'pelican-quickstart')()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 357, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2394, in load_entry_point
return ep.load()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2108, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/Library/Python/2.7/site-packages/pelican-3.4.0-py2.7.egg/pelican/__init__.py", line 20, in <module>
from pelican.generators import (ArticlesGenerator, PagesGenerator,
  File "/Library/Python/2.7/site-packages/pelican-3.4.0-py2.7.egg/pelican/generators.py", line 23, in <module>
from pelican.readers import Readers
  File "/Library/Python/2.7/site-packages/pelican-3.4.0-py2.7.egg/pelican/readers.py", line 24, in <module>
from six.moves.html_parser import HTMLParser
ImportError: No module named html_parser `

В этот пост появилось подобное сообщение об ошибке, и поскольку я запускаю Python 2.7.6 на OS X 10.10 (Yosemite), может быть аналогичное проблема.

Какой лучший способ решить эту проблему?

Ответы

Ответ 1

Вам может потребоваться установить шесть.

если вы используете pip, попробуйте

pip install six

а затем перезапустите pyican-quickstart

Ответ 2

Переустановка Пеликан не помогает мне, поэтому я сделал небольшое исправление в пеликан.

Модификации были сделаны в следующем файле

/Library/Python/2.7/site-packages/pelican/readers.py

в строке 24 место

from six.moves import html_parser

вместо

from six.moves.html_parser import HTMLParser

и в строке 299

    class _HTMLParser(html_parser.HTMLParser):

вместо

    class _HTMLParser(HTMLParser):

Модификация актуальна для pelican 3.6.0, но, похоже, применима для другой версии, если вы ищете эти строки в файле reader.py. Это просто быстрое обходное решение, надеюсь, что эта проблема будет решена на стороне пеликана.

Ответ 3

Эта ошибка, похоже, исходит от Python 2.7.6 на OSX. Когда я устанавливаю python через Homebrew и переустанавливаю этот модуль, я избавился от этой ошибки.

$ pip uninstall pelican
$ brew install python
$ which python # should show /usr/local/bin/python
$ python -V # should show Python 2.7.8
$ pip install pelican

Ответ 4

Я думаю, что вы, вероятно, столкнулись с проблемой проблемы с версией в модуле six.

Попробуйте sudo pip install virtualenv создать изолированную среду python.

старт

  • создайте свой путь пеликана mkdir /path/to/pelican
  • перейдите в /path/to/pelican и создайте изолированную среду python с помощью virtualenv venv
  • активировать virtualenv source venv/bin/activate
  • установить пеликан под вену (без sudo!) pip install pelican markdown

сделано

и теперь вы свободны в любой проблеме, упомянутой выше. все зависимости в Вене изолированы от глобальной среды.

Чтобы выйти из venv, введите deactivate

Ответ 5

Я столкнулся с тем же сообщением об ошибке.

six также был установлен, но старая версия (1.4.1)

pip install six --upgrade

Установлено шесть 1.10.0, которые сделали pelican-quickstart, наконец, работать:)