Python 错误无效语法(_init__.py)使用Beauty soup时无效

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

我想写一个简单的代码,从网站内容创建一个html文件。我正在使用
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