質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

14141閲覧

Pythonのpandasでスクレイピング時にlxmlが見つからない旨のエラーが発生

namako22

総合スコア4

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

1クリップ

投稿2021/02/20 03:04

前提・実現したいこと

Pythonのpandasでwebページの表(htmlのtable)をスクレイピングする機能を実装しています。
read_htmlする際にlxmlが見つからない旨のエラーメッセージが発生し、スクレイピングできません。

発生している問題・エラーメッセージ

raise ImportError("lxml not found, please install it")
ImportError: lxml not found, please install it

該当のソースコード

html_value = pd.read_html(url, header=0)[table_num]

試したこと

ターミナルからpip install lxmlしてみたところ、既にインストールされている旨のメッセージが表示されます。
Requirement already satisfied: lxml in c:\users\dnrz\anaconda3\lib\site-packages (4.4.1)

インストールされているのに実行できない原因として何が考えられるでしょうか。

環境

conda version : 4.7.12
conda-build version : 3.18.9
python version : 3.7.4.final.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/02/20 21:22 編集

pythonでエラーが出るコードの先頭に下記を追加して実行してください import sys import pprint pprint.pprint(sys.path) たくさんパスが表示されますが、その中に c:\users\dnrz\anaconda3\lib\site-packages が入ってますでしょうか? もし入ってなければ、表示されたパスを全部教えてください なお、ユーザ名等の個人情報は伏せ字にして構いません
namako22

2021/02/21 02:12

ご回答ありがとうございます。 他の方の回答にも記載しました、本件解決しました。 教えていただいたやり方で、実行時のシステム状況を確認できるのですね、勉強になりました。 ありがとうございました。
guest

回答1

0

ベストアンサー

「スクレイピングする機能」を動かしているpythonと、「ターミナル」で動いているpythonが違うからです。
「スクレイピングする機能」を動かすときにアクティベイトした状態でpip install lxmlしてください。

投稿2021/02/20 06:53

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

namako22

2021/02/20 13:59

すみません、調べたのですが具体的にどうやるのかわかりませんでした。 もう少し詳細に教えていただくことは可能でしょうか。
ppaul

2021/02/20 14:13

「スクレイピングする機能」をどういうように動かしていますか。 それを、あなたのいう「ターミナル」から python myscraper.pyとして実行しているならば、同じpythonを使っていればimport errorは出ないはずですので,それ以外の方法で実行しているはずです。それが書かれていないのでcondaで複数の環境を切り替えて実行していてを推定して回答しました。その場合はアクティベートは説明不要と思ったのですが、アクティベートが分からないということは、そうではないのですね。 質問します。vscodeを使っているとか、jupyterを使っているとかですか。それとも、別の方法でpythonを使っていますか?
namako22

2021/02/21 02:11

本件、解決しました。 私の環境にはpythonが二つインストールされており、「スクレイピングする機能」を動かしているpythonと、「ターミナル」で動いているpythonが違うことが原因でした。 IDEはpycharmを使用しておりますので、プロジェクトの設定から使用するpythonを指定することができました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問