2016-08-01 66 views
1
Traceback (most recent call last): File "urlgrabber.py", line 1, in <module> 
    from bs4 import BeautifulSoup File "/Users/asdf/Desktop/Scraper/bs4/__init__.py", line 29, in <module> 
    from .builder import builder_registry File "/Users/asdf/Desktop/Scraper/bs4/builder/__init__.py", line 4, in <module> 
    from bs4.element import ( File "/Users/asdf/Desktop/Scraper/bs4/element.py", line 5, in <module> 
    from bs4.dammit import EntitySubstitution File "/Users/asdf/Desktop/Scraper/bs4/dammit.py", line 13, in <module> 
    import logging File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/logging/__init__.py", line 28, in <module> 
    from string import Template ImportError: cannot import name 'Template' 

我有代码,基本上刮擦链接了一个网站。直到最近它才正常工作,它刚刚开始在命令提示符处返回此错误。我正在使用python 3.我已经下载了bs4并将其与python一起更新。我仍然收到这个错误。仍然是Python /编程新手,我不知道如何解决这个问题。我把上面的命令提示符的消息。之前的代码是标准的刮码,工作正常,但由于某种原因,最近没有工作。我不能从BS4进口BeautifulSoup“有一个新的.py文件,它会给我同样的错误:无法找出我的python 3脚本中的beautifulsoup4有什么问题

File "bs4fml.py", line 1, in <module> 
    from bs4 import BeautifulSoup 
    File "/Users/asdf/Desktop/Scraper/bs4/__init__.py", line 29, in <module> 
    from .builder import builder_registry 
    File "/Users/asdf/Desktop/Scraper/bs4/builder/__init__.py", line 4, in <module> 
    from bs4.element import (
    File "/Users/asdf/Desktop/Scraper/bs4/element.py", line 5, in <module> 
    from bs4.dammit import EntitySubstitution 
    File "/Users/asdf/Desktop/Scraper/bs4/dammit.py", line 13, in <module> 
    import logging 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/logging/__init__.py", line 28, in <module> 
    from string import Template 
+0

工作目录中是否存在string.py或string.pyc文件? – jinksPadlock

+0

还是新的这个,但通过工作目录你的意思是我试图运行的文件夹下的文件夹?如果是这样,是的,该文件夹中有一个string.py,但它只是垃圾代码来测试一个片段。我删除它,同样的错误仍然出现。 –

+1

是的,工作目录是您执行代码的目录。您应该删除string.py和string.pyc文件。发生什么事是Python试图导入你的字符串库而不是它自己的。 – jinksPadlock

回答

1

我搜索你的错误信息,与本想出了: https://bbs.archlinux.org/viewtopic.php?id=142036

它看起来问题在于Python正在从本地源尝试import from string而不是自己的字符串库,因为您的工作目录中有一个类似名称的string.py和/或string.pyc文件。

尝试删除string.py和string.pyc文件并重新运行脚本。

+0

它的工作,见上面的评论:) –

+1

太棒了!我将它添加为答案,以便您可以接受它作为工作解决方案! – jinksPadlock