NameError:全局名称' codepoint2name'没有定义

时间:2012-11-11 23:45:40

标签: python python-2.7 beautifulsoup

我在Windows XP上使用Python 2.7.3 我正在使用Pyscripter 2.5.3.0

我正在努力让美丽的汤运行并使用以下测试代码

import urllib2
from bs4 import BeautifulSoup

page = urllib2.urlopen("http://www.google.com")
soup = BeautifulSoup(page)
print soup.prettify()

代码在dammit.py停止。错误是:

Message File Name   Line    Position    
Traceback               
    <module>    D:\Python\TestBS.py 19      
    <module>    C:\Python27\lib\site-packages\bs4\__init__.py   29      
    <module>    C:\Python27\lib\site-packages\bs4\builder\__init__.py   4       
    <module>    C:\Python27\lib\site-packages\bs4\element.py    5       
    <module>    C:\Python27\lib\site-packages\bs4\dammit.py 49      
    EntitySubstitution  C:\Python27\lib\site-packages\bs4\dammit.py 70      
    _populate_class_variables   C:\Python27\lib\site-packages\bs4\dammit.py 57      
NameError: global name 'codepoint2name' is not defined

代码的这一部分

class EntitySubstitution(object):

    """Substitute XML or HTML entities for the corresponding characters."""

    def _populate_class_variables():
        lookup = {}
        reverse_lookup = {}
        characters_for_re = []
        for codepoint, name in list(codepoint2name.items()):

1 个答案:

答案 0 :(得分:1)

这是BeautifulSoup中的一个错误。很明显,作者错过了从'htmlentitydefs'模块导入符号。所以你可以通过添加导入来自己解决这个问题 BeautifulSoup代码。此外:联系BeautifulSoup作者或提交错误报告。