Python 错误无效语法(_init__.py)使用Beauty soup时无效
我想写一个简单的代码,从网站内容创建一个html文件。我正在使用Python 错误无效语法(_init__.py)使用Beauty soup时无效,python,beautifulsoup,syntax-error,python-import,Python,Beautifulsoup,Syntax Error,Python Import,我想写一个简单的代码,从网站内容创建一个html文件。我正在使用beautifulsoup4库。使用以下内容创建BeautifulSoup对象时: BeautifulSoup('<html></html>') 和库文件的init.py中的错误行: try: is_file = os.path.exists(possible_filename) except Exception, e: #ERROR!! # This is almost certain
beautifulsoup4
库。使用以下内容创建BeautifulSoup
对象时:
BeautifulSoup('<html></html>')
和库文件的init.py中的错误行:
try:
is_file = os.path.exists(possible_filename)
except Exception, e: #ERROR!!
# This is almost certainly a problem involving
# characters not valid in filenames on this
# system. Just let it go.
pass
你没有把这件事做得太简单,但我认为你发布的内容中有足够的信息来解决你的问题
import urllib.request as req
这一行仅在您使用Python3.x时有效,因为您已经通过了这一行,我假设情况就是这样
except Exception, e:
这一行使用的是Python2.x语法。您似乎试图在Python3.x程序中导入Python2.x库。那不行。在Python 3中,except
子句具有以下语法(因此需要将作为
而不是逗号):
为了验证,如果我的假设是正确的,语法错误应该是将逗号指示为产生问题的实际字符
我不知道你为什么会这样。我刚刚使用pip install BeautifulSoup4
安装了bs4,刚刚为我安装的版本第175行的代码是:
try:
is_file = os.path.exists(possible_filename)
except Exception as e:
# This is almost certainly a problem involving
# characters not valid in filenames on this
# system. Just let it go.
pass
这是可行的。我能够在Mac OSX 10.10.1上重现这个问题,该Mac OSX 10.10.1具有与OSX一起分发的原始Python 2.7.6和3.4.2上的Python空闲。使用后
python3 setup.py install
我也犯了同样的错误:
>>> import bs4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Applications/Python 3.4/beautifulsoup4-4.3.2/bs4/__init__.py", line 175
except Exception, e:
^
SyntaxError: invalid syntax
导入bs4
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Applications/Python 3.4/beautifulsoup4-4.3.2/bs4/_init__.py”,第175行
除例外情况外,e:
^
SyntaxError:无效语法
安装程序可能正在读取默认安装目录/Library/Python/2.7/site-packages/,并假设BeautifulSoup将在Python 2.7上运行。看起来像是安装中的错误。可以找到解决方案
问题在于,您下载的模块是用python版本2编写的,该版本的语法与您安装在计算机上的python版本(版本3)不兼容
要解决此问题,请使用位于中的2to3.py
工具
…\Python34\Tools\Scripts
手动将bs4目录中的每个python文件从版本2转换为版本3(…\beautifulsoup4-4.3.2\bs4)
例如打字
'C:\Python34\Tools\Scripts\2to3.py…\beautifulsoup4-4.3.2\bs4\\uu init\uuuuuuuuuuu.py'
将
\uuuu init\uuuu.py
文件从版本2转换为版本3 您还可以提供第174行吗?在给出错误的行中,还应该有一个扬抑符指向该点:请始终复制并粘贴完整的准确错误,而不是对其进行解释。最有可能的是,虽然你之前的一行中有一个未闭合的括号。@Duncan确切的错误是我上面说的。请参阅已编辑的part@0xc0de:请查看已编辑的部分。编辑后,我已还原my-1,但您仍然可以通过复制粘贴错误使其更清晰(并且更容易获得解决方案)。也可以向编辑的零件添加行号。新添加的部分似乎没有引起任何错误,因为它掩盖了所有的错误!您确定错误来自此文件/模块吗?您实际上没有使用已安装的BeautifulSoup软件包。您正在运行的代码是源tarball。不应将下载的源添加到路径中python3 setup.py安装
将翻译后的代码复制到站点软件包中。BeautifulSoup 4用于创建Python 3代码库;如果出现此异常,则OP正在尝试运行原始tarball,而不是转换后的代码库。BeautifulSoup安装程序的setup.py
已经解决了此问题。无需手动执行此操作。
python3 setup.py install
>>> import bs4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Applications/Python 3.4/beautifulsoup4-4.3.2/bs4/__init__.py", line 175
except Exception, e:
^
SyntaxError: invalid syntax