2016-08-01 15 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 /プログラミングの新機能で、これを修正する方法がわかりません。私はコマンドプロンプトのメッセージを上に置きます。以前はコードが正常に機能していた標準的なスクレイピングコードでしたが、何らかの理由で最近動作していませんでした。私はあなたのエラーメッセージを検索し、この思い付いた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

::私は新しいの.pyファイルに「BS4インポートBeautifulSoupから」持つことができ、それは私に同じエラーを与えるでしょう https://bbs.archlinux.org/viewtopic.php?id=142036

それは、あなたの作業ディレクトリに同じ名前のstring.pyおよび/またはstring.pycというファイルがあるので、Pythonが独自の文字列ライブラリの代わりにローカルソースからimport from stringにしようとしているという問題があります。

string.pyとstring.pycファイルの両方を削除して、スクリプトを再実行してみてください。

+0

うまくいって、上記のコメントを参照してください:) –

+1

素晴らしい!私は答えとしてそれを追加しましたので、あなたはそれを実用的な解決策として受け入れることができました! – jinksPadlock

関連する問題