web-dev-qa-db-ja.com

ImportError:「html.parser」という名前のモジュールがありません。 「html」はパッケージではありません(python3)

コード:

from html.parser import HTMLParser

トレースバック(最後の最後の呼び出し):

  File "program.py", line 7, in <module>
    from html.parser import HTMLParser
ImportError: No module named 'html.parser'; 'html' is not a package

python3 program.pyで呼びます

Pythonバージョン:Python 3.4.0

10
Croll

標準ライブラリパッケージをマスクするhtml.pyという名前のlocalファイルを作成しました。

名前を変更するか、削除します。あなたはそれを見つけることができます:

python3 -c "import html; print(html.__file__)"

デモ:

naga:stackoverflow-3.4 mpieters$ touch html.py
naga:stackoverflow-3.4 mpieters$ bin/python -c 'from html.parser import HTMLParser'
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'html.parser'; 'html' is not a package
naga:stackoverflow-3.4 mpieters$ bin/python -c "import html; print(html.__file__)"
/.../stackoverflow-3.4/html.py
naga:stackoverflow-3.4 mpieters$ rm html.py 
naga:stackoverflow-3.4 mpieters$ bin/python -c 'from html.parser import HTMLParser; print("Succeeded")'
Succeeded
12
Martijn Pieters

Pythonパス のどこかにファイルhtml.py(またはhtml.pyc)があります。

$ touch html.py
$ python3 -c 'import html.parser'
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'html.parser'; 'html' is not a package

ファイルの名前を(myhtml.pyに)変更するだけです。どこにあるかわからない場合は、次のコマンドでその場所を印刷できます。

# Insert temporarily before the problematic line
import html
print(html.__file__)
5
phihag