質問: Windows7 (ver6.1.7601), python2.7の最新版で競馬情報のスクレイピングを行っておりましたが、 今日、プログラムを動かしたところ、以下のようなエラーがでました。 C:\Users\satoru\horse\horse>horse-scan.py Traceback (most recent call last): File "C:\Users\satoru\horse\horse\horse-scan.py", line 6, in from bs4 import BeautifulSoup File "C:\Python27\lib\site-packages\bs4\*init*.py", line 30, in from .builder import builder_registry, ParserRejectedMarkup File "C:\Python27\lib\site-packages\bs4\builder\*init*.py", line 314, in from . import _html5lib File "C:\Python27\lib\site-packages\bs4\builder\_html5lib.py", line 70, in class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder): AttributeError: 'module' object has no attribute '_base' htmllib等の再インストールも行いましたが、うまくいきません。 特に何かソースコードを変更したわけでもないのに、突然にエラーが発生して、非常に困っております。 先輩方の御教示、よろしくお願いいたします。 追記 Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\satoru>pip install bs4 Requirement already satisfied: bs4 in c:\python27\lib\site-packages Requirement already satisfied: beautifulsoup4 in c:\python27\lib\site-packages (from bs4) C:\Users\satoru>pip install builder_registry Collecting builder_registry Could not find a version that satisfies the requirement builder_registry (from versions: ) No matching distribution found for builder_registry C:\Users\satoru> 上記のようなことも試みましたが、うまくいきません。versionの問題なのでしょうか? 追記 突然と申し上げましたが、しいて変更したとすれば、jupyterをインストールしました。 先ほどアンインストールしましたが、改善出来ておりません。
回答: PyPI パッケージ間のバージョン齟齬が疑われる...等の理由でインストール済みのパッケージをバージョンアップしたい場合は、 `pip install` コマンドに `--upgrade` 引数を付けて実行してみてください。 ``` $ pip install --upgrade bs4 ``` > > 突然と申し上げましたが、しいて変更したとすれば、jupyterをインストールしました。 > > 先ほどアンインストールしましたが、改善出来ておりません。 > > > 恐らく、 jupyter の依存関係で html5lib のバージョンが上がったりしたのではないでしょうか。 こういったトラブルを避けるために、 Python 2.7 では virtualenv という「プロジェクト毎に `pip` の環境を分けておく」機能が広く使われていますので、調べておくと良いかもしれません。