Error using pelican-quickstart “No module named html_parser”

谁说我不能喝 提交于 2019-12-03 17:13:10

问题


I decided to give pelican a try, but when I run pelican-quickstart, I get the following dialog:

$ 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 `

There was a similar error message in this post, and since I'm running Python 2.7.6 on OS X 10.10 (Yosemite), there may be a similar issue.

What's the best way to address this?


回答1:


You may need to install six.

if you're using pip, try

pip install six

and then restart pelican-quickstart




回答2:


Reinstall Pelican doesn't help me, so I made a little fix in pelican

Modifications were made in following file

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

at line 24 place

from six.moves import html_parser

instead of

from six.moves.html_parser import HTMLParser

and at line 299

    class _HTMLParser(html_parser.HTMLParser):

instead of

    class _HTMLParser(HTMLParser):

Modification actual for pelican 3.6.0, but seems to applicable for other version if search for this lines in readers.py file. This is just quick workaround, hope this problem will be solved at pelican's side.




回答3:


This error seems to come from Python 2.7.6 on OSX. When I install python via Homebrew and reinstall this module I got rid of this error.

$ 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:


I think that you've probably encountered with version conflict problem in module six.

Try sudo pip install virtualenv to create an isolate python environment.

start

  1. create your pelican path mkdir /path/to/pelican
  2. go to /path/to/pelican and create an isolate python environment with virtualenv venv
  3. activate virtualenv source venv/bin/activate
  4. install pelican under the venv(without sudo!) pip install pelican markdown

done

and now you are free to any problem mentioned above. all the dependencies in the venv are isolated from the global environment.

To quit the venv, type deactivate




回答5:


I was running into the same error message.

six was also already installed, but an old version (1.4.1)

pip install six --upgrade

Installed six 1.10.0, which made pelican-quickstart finally work :)



来源:https://stackoverflow.com/questions/26508606/error-using-pelican-quickstart-no-module-named-html-parser

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!