Beautifulsoup 的“单元测试失败”

Posted

技术标签:

【中文标题】Beautifulsoup 的“单元测试失败”【英文标题】:"unit tests have failed" for beautifulsoup 【发布时间】:2014-04-13 14:57:54 【问题描述】:

我正在尝试为 python33 安装 beautifulsoup,但它没有正确安装它会给出如下错误:

C:\Python33>pip install beautifulsoup
Downloading/unpacking beautifulsoup
Downloading BeautifulSoup-3.2.1.tar.gz
Running setup.py egg_info for package beautifulsoup
Traceback (most recent call last):
  File "<string>", line 16, in <module>
  File "c:\windows\temp\pip_build_Prashant\beautifulsoup\setup.py", line 22
    print "Unit tests have failed!"
                                  ^
SyntaxError: invalid syntax
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "<string>", line 16, in <module>

File "c:\windows\temp\pip_build_Prashant\beautifulsoup\setup.py", line 22

print "Unit tests have failed!"

                              ^

SyntaxError: invalid syntax 

那么我可以为这个错误做些什么,有人可以建议我吗?

【问题讨论】:

你想要beautifulsoup4; BS 3 已经很老了,不能在 Python 3 上运行。 这个作品和beautifulsoap一样吗? @Prashant:这是该项目的最新版本。 感谢它现在的工作...... 【参考方案1】:

您正在尝试安装 BeautifulSoup 3,它与 Python 3 不兼容。改为安装beautifulsoup4

pip install beautifulsoup4

大多数假定 BeautifulSoup 3 的代码也适用于 BeautifulSoup 4。对于新项目,请坚持使用 BS4。

【讨论】:

这是有史以来最不幸的版本号选择。当然有人会期望 BeautifulSoup 3 与 Python 3 一起工作! @MarkRansom:不确定你是否认真。 BS3 于 2006 年首次发布,比 Python 3 出现早了两年。与 Python 3 的发布时间表无关,版本 3 或 4 有大量软件包。 是的,我是认真的。他们至少可以更新包,通知您 Python 3 需要不同的包,这样您就不必在互联网上搜索发生了什么。 我同意该项目不应该像那样切换名称,或者至少应该推出一个过渡版本选项。但与版本号关系不大。请注意,project documentation page 非常明确地说明了应该安装的内容。 @CoreyLevinson:大概是因为 BeautifulSoup 4 并不完全向后兼容。使用 BeautifulSoup 3 的项目不能在不中断的情况下全部升级到 BeautifulSoup 4。如果没有重命名,任何使用自动依赖管理的项目都可能崩溃。

以上是关于Beautifulsoup 的“单元测试失败”的主要内容,如果未能解决你的问题,请参考以下文章

通过“identical to”灵活匹配结构

如果任何单元测试失败,如何使 Python 的覆盖工具失败?

Jenkins 中的单元测试失败

导入头文件时单元测试失败

使用玩笑的反应单元测试失败

运行所有测试时单元测试失败,但调试时通过