2016-08-01 12 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' 

Ich habe Code, der im Grunde kratzt Link von einer Website. Es funktionierte gut, bis es vor kurzem begann, diesen Fehler an der Eingabeaufforderung zurückzugeben. Ich benutze Python 3. Ich habe bs4 heruntergeladen und zusammen mit Python aktualisiert. Ich erhalte immer noch diesen Fehler. Immer noch neu in Python/Programmierung und bin mir nicht sicher, wie ich das beheben kann. Ich lege die Meldungen der Eingabeaufforderung oben ab. Code zuvor war Standard-Scraping-Code, der gut funktionierte, aber aus irgendeinem Grund nicht zuletzt funktionierte. Ich kann auf einer neuen .py Datei ‚von BS4 Import BeautifulSoup‘ haben, und es wird mir den gleichen Fehler geben:Kann nicht herausfinden, was falsch ist mit BeautifulSoup4 in meinem Python 3 Skript

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

Gibt es eine Datei string.py oder string.pyc in Ihrem Arbeitsverzeichnis? – jinksPadlock

+0

Noch neu dazu, aber nach Arbeitsverzeichnis meinst du den Ordner, in dem ich versucht habe zu laufen? Wenn ja, da war ein string.py in diesem Ordner, aber es war nur ein Papierkorb, um einen Ausschnitt zu testen. Ich habe es gelöscht und der gleiche Fehler tritt immer noch auf. –

+1

Ja, das Arbeitsverzeichnis ist das Verzeichnis, in dem Sie Ihren Code ausführen. Sie sollten die Dateien string.py und string.pyc löschen. Was passiert, ist, dass Python versucht, die eigene String-Bibliothek zu importieren. – jinksPadlock

Antwort

1

ich Ihre Fehlermeldung gesucht und kam mit dieser: https://bbs.archlinux.org/viewtopic.php?id=142036

Es sieht aus wie das Problem ist, dass Python versucht import from string von einer lokalen Quelle anstelle einer eigenen String-Bibliothek, weil Sie eine ähnlich benannt string.py und/oder string.pyc Datei in Ihrem Arbeitsverzeichnis haben.

Versuchen Sie, die Dateien string.py und string.pyc zu löschen, und führen Sie das Skript erneut aus.

+0

hat funktioniert, siehe Kommentar oben :) –

+1

Großartig! Ich habe es als Antwort hinzugefügt, damit Sie es als Arbeitslösung akzeptieren können! – jinksPadlock