使用pelican-quickstart时出错“没有名为html_parser的模块”

时间:2014-10-22 13:29:13

标签: python pelican

我决定尝试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 `

this post中有类似的错误消息,因为我在OS X 10.10(Yosemite)上运行Python 2.7.6,所以可能存在类似的问题。

解决这个问题的最佳方法是什么?

5 个答案:

答案 0 :(得分:10)

重新安装Pelican并没有帮助我,所以我在鹈鹕身上做了一些修复

在以下文件中进行了修改

/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):

鹈鹕3.6.0的修改实际,但如果在readers.py文件中搜索此行,似乎适用于其他版本。这只是一个快速的解决方法,希望这个问题能够在鹈鹕队解决。

答案 1 :(得分:5)

这个错误似乎来自OSX上的Python 2.7.6。当我通过Homebrew安装python并重新安装这个模块时,我摆脱了这个错误。

$ 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

答案 2 :(得分:4)

我认为您可能在模块six中遇到了版本冲突问题

尝试sudo pip install virtualenv创建一个isolate python环境。

开始

  1. 创建您的鹈鹕路径mkdir /path/to/pelican
  2. 转到/path/to/pelican并使用virtualenv venv
  3. 创建一个isolate python环境
  4. 激活virtualenv source venv/bin/activate
  5. 在venv下安装pelican(没有sudo!)pip install pelican markdown
  6. 完成

    现在你可以自由解决上面提到的任何问题。 venv中的所有依赖关系都与全球环境隔离开来。

    要退出venv,请键入deactivate

答案 3 :(得分:0)

我遇到了同样的错误消息。

six也已安装,但旧版本(1.4.1)

pip install six --upgrade

安装了六个1.10.0,这使pelican-quickstart最终工作:)

答案 4 :(得分:-3)

您可能需要安装六个。

如果你正在使用pip,请尝试

pip install six

然后重启pelican-quickstart