6

我上周将我的机器升级到了优胜美地。现在,当尝试运行 pelican devserver 时,我得到一个 ImportError:

$ ./develop_server.sh start
Starting up Pelican and HTTP server
Traceback (most recent call last):
  File "/usr/local/bin/pelican", line 7, in <module>
    from pelican import main
  File "/Library/Python/2.7/site-packages/pelican/__init__.py", line 20, in <module>
    from pelican.generators import (ArticlesGenerator, PagesGenerator,
  File "/Library/Python/2.7/site-packages/pelican/generators.py", line 23, in <module>
    from pelican.readers import Readers
  File "/Library/Python/2.7/site-packages/pelican/readers.py", line 24, in <module>
    from six.moves.html_parser import HTMLParser
ImportError: No module named html_parser
/usr/bin/python: No module named html_parser
Pelican didn't start. Is the Pelican package installed?
Stale PID, deleting
Stale PID, deleting

尝试进行直接导入时,我从 REPL 收到相同的错误,但模块已安装:

$ /usr/bin/python
Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import 
KeyboardInterrupt
>>> from six.moves.html_parser import HTMLParser
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named html_parser
>>> import six
>>> six.moves.html_parser
<module 'HTMLParser' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.pyc'>
>>> six.moves.html_parser.HTMLParser
<class HTMLParser.HTMLParser at 0x10b751530>
>>> 

我错过了一些明显的东西吗?这里发生了什么?

4

2 回答 2

5

六库使用了一些高级的导入魔法。的导入html_parser必须以特殊方式完成。from six.moves import html_parser通常有效。如果您有第三方代码尝试以其他方式从六个导入,您可以尝试导入six和/或six.moves首先在导入其他任何内容之前。

于 2014-11-01T20:52:46.250 回答
0

为我工作:

from six.moves import html_parser
html = html_parser.HTMLParser()

html.unescape(myString)

这保证了 Python2 的向下兼容性。

于 2018-12-04T00:29:59.357 回答