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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

10886閲覧

selenium を利用したいが、[ModuleNotFoundError: No module named 'selenium']のエラーがでる

raikin

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/09/11 13:03

<前提・実現したいこと>

[selenium] のインポート時にエラーが出てしまうのでその原因を知りたいです。

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

WEBスクレイピングについて学ぶため、seleniumを利用しています。
VSCODE上で記述した[.ipynb]ファイルでは問題なく動作するのですが、
[.py]ファイルに記述して動作させようとすると[selenium] のインポート時にエラーが出てしまいます。

<該当のソースコード>

PS D:\ python test.py Traceback (most recent call last): File "D:\test.py", line 5, in <module> import selenium ModuleNotFoundError: No module named 'selenium'

<試したこと>

1,
[pip3 list]にて[selenium]がインストールできているかを確認。➡インストールされているのを確認。

PS C:\> pip3 list Package Version ------------------------- --------- selenium 3.141.0

2,
問題のソースコードの余分な部分をコメントアウトし、[selenium]のインポートのみを行うようにし、
念のため、現象の再現確認➡現象が再現することを確認

import selenium def main(): print("test") main()
PS C:\test> python test2.py Traceback (most recent call last): File "C:\test2.py", line 1, in <module> import selenium ModuleNotFoundError: No module named 'selenium'

3,
念のためインストールし直し

PS C:\> pip3 uninstall selenium Found existing installation: selenium 3.141.0 Uninstalling selenium-3.141.0: Would remove: c:\users\ユーザ名\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages\selenium-3.141.0.dist-info* c:\users\ユーザ名\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages\selenium* Proceed (Y/n)? y Successfully uninstalled selenium-3.141.0

3,
再度[pip3 list]にて[selenium]がアンインストールできているかを確認。➡アンインストールされているのを確認。

PS C:\> pip3 list Package Version ------------------------- --------- #リスト内にseleniumがないことを確認

4,
再度[selenium]をインストール

PS C:\> pip3 install selenium Collecting selenium Using cached selenium-3.141.0-py2.py3-none-any.whl (904 kB) Requirement already satisfied: urllib3 in c:\users\ユーザ名\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (from selenium) (1.26.6) Installing collected packages: selenium Successfully installed selenium-3.141.0

5,
再度[pip list]にて[selenium]がインストールできているかを確認。➡インストールされているのを確認。

PS C:\> pip3 list Package Version ------------------------- --------- selenium 3.141.0

6,
再度、2のファイルを実行し確認➡現象の再現を確認。

PS C:\test> python test2.py Traceback (most recent call last): File "C:\test2.py", line 1, in <module> import selenium ModuleNotFoundError: No module named 'selenium'

といった状況です。
よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)
【環境】Windows10 HOME
【環境変数】
①c:\users\ユーザ名\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages
②C:\Users\ユーザ名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\Scripts
の2点はPathに追加しています。

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

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

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

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

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

Daregada

2021/09/11 13:47

「python -m pip list」の出力にseleniumが含まれているか確認してください。
raikin

2021/09/11 23:23

回答ありがとうございます。 仰る通り、[python -m pip list] を実行してみたところ、 出力されたリストに[selenium]はありませんでした。 これは…理解ができていないのですが、PCにインストールできているけれど python 側には使える状態になっていない(認識されていない)というようなことでしょうか。
jbpb0

2021/09/11 23:30 編集

pip3 install selenium を実行したのと同じ状態で pip3 show selenium を実行してください いろいろ表示される中に「Location:」で始まる行がありますので、そこに書かれてるパスを記録してください 次に、pythonで import モジュール名 がうまくいかない > [.py]ファイルに記述して動作させようとすると[selenium] のインポート時にエラーが出てしまいます。 の状態で、下記のpythonコードを実行してください import sys import pprint pprint.pprint(sys.path) たくさんパスが表示されますが、その中にpip3 show...で記録したパスが入ってますでしょうか? 入ってないとimportできません
jbpb0

2021/09/11 23:35

なお、pythonで import モジュール名 がうまくいく > [.ipynb]ファイルでは問題なく動作する の状態で import sys import pprint pprint.pprint(sys.path) を実行したら、その場合はpip3 show...で記録したパスが入ってると思います
raikin

2021/09/11 23:42

返信のつけ方間違っていたらごめんなさい。 皆様コメントありがとうございます。 >Daregadaさん 上記のとおりです。 [pip install]と[python -m pip install] の違いについて理解できておりませんでした。 >jbpb0さん 教えて頂いた手順で確認したところ、 [pprint.pprint(sys.path)]で出力されたPath一覧に [pip3 show selenium]で出力された[Location]項のパスが見つかりました。 こちらは…環境変数のPathが通っているかどうかというようなことでしょうか。
jbpb0

2021/09/11 23:58

「sys.path」と「環境変数Path」は関係ありません 「sys.path」の確認は、 > [.py]ファイルに記述して動作させようとすると[selenium] のインポート時にエラーが出てしまいます。 と、 > [.ipynb]ファイルでは問題なく動作する の両方で、それぞれ確認しましたか? 両者では結果が異なるはずなのですが
raikin

2021/09/12 00:01

>jbpb0さん 回答ありがとうございます。 2つ目のコメントのタイミングに被ってしまいました汗 なるほ…ど…、ある意味、見つかって当然、というようなことなのでしょうか。。 VSCODE上で試しに[test3.py]という新たなファイルを作り、 教えていただいた3行のみ記述してVSCODE上のターミナルから[python test3.py]で実行し、 出力された一覧上で[Location]項と同一のパスを見つけることができました。
jbpb0

2021/09/12 00:37 編集

> ある意味、見つかって当然、というようなことなのでしょうか。。 インポートできた方では見つかって当然、(質問を書いた時点で)インポートできなかった方では見つからなくて当然、です > [.py]ファイルに記述して動作させようとすると[selenium] のインポート時にエラーが出てしまいます。 と、 > [.ipynb]ファイルでは問題なく動作する で、「sys.path」は同じですか? もし同じなら、インポートはどちらもできるかできないかになるはずで、質問の状況にはならないはずなのです 「sys.path」に含まれてれば見つかるので、インポートできるはず > [.py]ファイルに記述して動作させようとすると[selenium] のインポート時にエラーが出てしまいます。 だったのに、 > 教えていただいた3行のみ記述してVSCODE上のターミナルから[python test3.py]で実行し、 出力された一覧上で[Location]項と同一のパスを見つけることができました。 となるのは不思議です
guest

回答1

0

ベストアンサー

pythonコマンドで実行されるPython環境と、pip3コマンドで実行されるPython環境が異なっているということでしょう。
複数のPython環境をインストールしている場合は、「この実行の仕方ではどの環境?」を常に意識する必要があります。

pip3 install ~~でなくpython -m pip install ~~でインストールするか、PATHを適切に設定するとか。

投稿2021/09/11 15:32

otn

総合スコア85901

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

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

raikin

2021/09/11 23:52

回答ありがとうございます。 ①[pip3 install]と②[python -m pip install]の違いについて理解できておりませんでした。 他にコメントを付けてくださった方の内容にあったのですが [python -m pip list] の方で確認したところ、[selenium]がなかったため ②のほうでインストールを行ったところ、エラーなく動作させることができました。 大変助かりました。ありがとうございました。 不勉強ですみません。改めて質問投稿させていただくべきなのかとも思うのですが、 自身、複数のpythonをインストールしたと記憶しておらず、この際、その辺も統一できればと思うのですが、python のインストールされている環境全てを確認、修正するようなことはできますでしょうか。
jbpb0

2021/09/12 00:32

> 自身、複数のpythonをインストールしたと記憶しておらず > python のインストールされている環境全てを確認 の方法の一つを書きます > [.py]ファイルに記述して動作させようとすると[selenium] のインポート時にエラーが出てしまいます。 と、 > [.ipynb]ファイルでは問題なく動作する のそれぞれの状態で、下記のコードを実行してみてください import sys print(sys.executable) そうしたら、それぞれで使われてるPython本体がどこにあるのかが表示されます それが置いてある場所(パス)を見たら、だいたい状況が分かります
otn

2021/09/12 01:16 編集

jbpb0さんのコメントとほぼ同じことですが、コマンドプロンプトにて(or PowerShellにて)、 where.exe python where.exe pip3 の結果を書いてください。
raikin

2021/09/12 03:01

コメントありがとうございます。 >jbpb0さん それぞれで実行したところ、 前者:C:\Users\ユーザ名\AppData\Local\Programs\Python\Python39\python.exe 後者:C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe となっておりました。 異なる2種類の実行ファイル環境があるということですか(^^; >otnさん [where.exe python]の出力結果: C:\Users\ユーザ名\AppData\Local\Programs\Python\Python39\python.exe C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps\python.exe [where.exe pip3]の出力結果: C:\Users\ユーザ名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\Scripts\pip3.exe C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps\pip3.exe となりました。
jbpb0

2021/09/12 06:01

> 前者:C:\Users\ユーザ名\AppData\Local\Programs\Python\Python39\python.exe は公式版、 > 後者:C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe はマイクロソフトストア版です
jbpb0

2021/09/12 06:37 編集

「where コマンド」の結果の一番最初に出てくる「コマンド」が使われます > [where.exe pip3]の出力結果: C:\Users\ユーザ名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\Scripts\pip3.exe はマイクロソフトストア版のPythonに紐付いてるので、現状「pip3 install…」で入れたのは「後者」([.ipynb]ファイルの方)のPythonではインポートできます 「前者」([.py]ファイルの方)のPythonに紐付いてるpip.exe(またはpip3.exe)が、「C:\Users\ユーザ名\AppData\Local\Programs\Python\Python39」の近くのどこかにあるはずで、それを使ってインストールしたら、「前者」のPythonでインポートできるはずです where pip の結果はどうなりますか?
jbpb0

2021/09/12 06:35

二つのPythonのどちらを今後使っていくのか決めて、支障が無ければもう片方のは削除することをお勧めします 二つ以上のPythonが入ってると、ちゃんと使い分けできるのならいいですが、そうでなければ今回のようなトラブルの原因になるからです
raikin

2021/09/12 13:42

>jbpb0さん コメントありがとうございます。 なるほど、そんな違いがあるのですね。 最初VSCODEをインストールして、そこから色々インストールした気がしますのでそれだと思います。 むしろ公式版?の方をどうやってインストールしたのかがわかっていない感じです(^^; [Where.exe pip]の結果は12:01の書き込みの[Where.exe pip3]の結果とほぼ同じでして、 2つのパスが表示され、ディレクトリは全く一緒で並び順も同じ、 ファイル名のみ[pip3.exe]->[pip.exe]に変わっただけの内容で出力されました。 >二つ以上のPythonが入ってると… やはりそうですよね。どちらを残すべきか、判断基準がわからず悩ましいところではあるのですが…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問