我正在尝试在Python 3.4中安装Beautiful Soup 4。我从命令行安装了它(由于我没有转换它而得到了无效的语法错误),将2to3.py
转换脚本运行到bs4
,现在我得到一个新的无效语法错误。
>>> from bs4 import BeautifulSoup
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
from bs4 import BeautifulSoup
File "C:\Python34\bs4\__init__.py", line 30, in <module>
from .builder import builder_registry, ParserRejectedMarkup
File "C:\Python34\bs4\builder\__init__.py", line 4, in <module>
from bs4.element import (
File "C:\Python34\bs4\element.py", line 1213
print 'Running CSS selector "%s"' % selector
^
SyntaxError: Missing parentheses in call to 'print'
有什么想法吗?
答案 0 :(得分:8)
BeautifulSoup 4 不需要手动转换才能在Python 3上运行。您正在尝试运行仅与Python 2兼容的代码;看来你没能正确转换代码库。
Beautiful Soup 4适用于Python 2(2.6+)和Python 3。
现在抛出异常的行应读取:
print('Running CSS selector "%s"' % selector)
代码库确实使用Python 2语法,但setup.py
安装程序会将此转换为兼容的Python 3语法。确保使用pip
安装项目:
pip install beautifulsoup4
或使用与Python 3.4捆绑在一起的pip
版本:
python3.4 -m pip install beautifulsoup4
或使用easy_install
:
easy_install beautifulsoup4
如果您只下载了tarball,至少运行
python3.4 setup.py install
让安装程序为您正确转换代码库;转换后的代码被复制到您的Python设置中。您可以在运行命令后丢弃下载的源目录,请参阅How installation works。
或者,运行:
python3.4 setup.py build
并复制build/lib
目录。再次,不使用原始源目录,因为它保持不变。