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

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

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

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

selenium

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

Q&A

1回答

981閲覧

PythonでのSeleniumのインポートが出来ない(Module Not Foundエラーとなる)

Natsuki902

総合スコア13

Python 3.x

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

selenium

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

0グッド

0クリップ

投稿2022/05/07 12:39

編集2022/05/07 23:24

Pythonとseleniumを併用して、Google Chromeを操作するプログラムを作成しようとしているのですが、
いくつかのWebサイトの記述をもとに以下の通りコードを記述してみたのですが、後述のエラーとなり、
先に進むことが出来ません。こちら、どういった原因が考えられ、どう対処すればいいか、勘所をご教示いただきたいです。

※この関数の引数のSfileは「実行するコマンドを記述したファイルのフルパス」、
CDpathは「Chrome Driverのフルパス」が入っています。

Python

1import csv 2import os 3 4def RunScenarioBB(Sfile,CDpath): 5 print("Chrome Driverをチェックします。") 6 print("Chrome Driver>" + CDpath) 7 try: 8 if not os.path.exists(CDpath): 9 print("Chrome Driverが存在しません。") 10 return() 11 except: 12 pass 13 finally: 14 pass 15 print("シナリオを読み込みます") 16 try: 17 #Chrome Driverをロード 18 from selenium import webdriver 19 from time import sleep 20 chrome = webdriver.Chrome(executable_path=CDpath) 21 22 (「from selenium~」で落ちるため、以下省略)

これを実行すると、以下のエラーが発生します。

(前略)
ファイル存在チェック完了。処理開始します。
Chrome Driverをチェックします。
Chrome Driver>【プロジェクトのフルパス】\ChromeDriver\chromedriver100_0_4896_60.exe
シナリオを読み込みます
Traceback (most recent call last):
File "【プロジェクトのフルパス】\MainComp.py", line 41, in <module>
RunScenarioBB(fpath,CDpath)
File "【プロジェクトのフルパス】\RunScenario.py", line 24, in RunScenarioBB
from selenium import webdriver
File "C:\Users\User1\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver_init_.py", line 18, in > >   <module>
from .firefox.webdriver import WebDriver as Firefox # noqa
File "C:\Users\User1\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\firefox\webdriver.py", line 27, in <module>
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
File "C:\Users\User1\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\remote\webdriver.py", line 39, in <module>
from .remote_connection import RemoteConnection
File "C:\Users\User1\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\remote\remote_connection.py", line 23, in <module>
import certifi
ModuleNotFoundError: No module named 'certifi'

なお、このプログラムの記載に際して、以下のページを参照しました。
PythonでSeleniumを使ってChromeを操作するための基礎(自動化)

また、Python本体は2022/5/4時点での最新版(3.10.4)を使用しており、Windows10環境でセットアップしています。
将来的にインターネット接続がないPCでセットアップすることから、pip installをオフラインで行うを参照してSeleniumのインストール作業を行っています。
これが原因の可能性もありますが、その場合オフラインインストールのやり方も確認が必要となります。

pip download -d src selenium
(ここで、いくつかファイルがダウンロードできます。そのうち、以下のファイルをインストール作業の引数にしています)
pip install --find-links C:\Users\User1\Desktop\20220504_PythonSetup\src --no-deps selenium-4.1.3-py3-none-any.whl

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

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

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

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

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

melian

2022/05/07 13:12

> ModuleNotFoundError: No module named 'certifi' > > pip install --find-links ... --no-deps ... --no-deps を付けて Selenium をインストールしたので、依存関係にあるパッケージがインストールされていない様です。
Natsuki902

2022/05/07 13:41

melianさま !なるほどです。たしかにそれは十分ありそうです。 ・・・メイン質問に記載の通り、将来的にインターネット接続がないPCでセットアップすることから、 1.一度関連モジュールをローカルにダウンロード 2.資材をインストールするPCへ転送 3.ローカルのモジュールをもとにオフラインインストール という段階を踏む必要があるんですよね。。 依存関係にあるパッケージはどうやって調べたものでしょうか… (まだPythonの勉強を始めて間もない(他言語を含めてもあまり歴が長くない)のでこのあたりも弱く申し訳ありません。)
guest

回答1

0

melianさまのご助言を元に依存関係でWeb検索してみて、経緯が謎なものの、解決したように見えるため、
そこまでの時系列を報告します。

1.Web検索で以下のページに辿り着きました

Pythonのpipインストールを社内環境で実行する方法を画像付きで解説! 【一括インストールも解説!】

2.一度seleniumをアンインストール・再インストールする

※コマンドは割愛。依存関係がわからないので試行錯誤の一貫です。。

3.pipdeptreeをインストール&実行

実行結果は以下のとおりです。

C:\Users\User1\Desktop\20220504_PythonSetup\src>C:\Users\User1\AppData\Roaming\Python\Python310\Scripts\pipdeptree.exe
Warning!!! Possibly conflicting dependencies found:

  • pyinstaller==5.0.1
  • altgraph [required: Any, installed: ?]
  • pefile [required: >=2017.8.1, installed: ?]
  • pywin32-ctypes [required: >=0.2.0, installed: ?]
  • pyinstaller-hooks-contrib [required: >=2020.6, installed: ?]

certifi==2021.10.8
pipdeptree==2.2.1

  • pip [required: >=6.0.0, installed: 22.0.4]

pyinstaller==5.0.1

  • altgraph [required: Any, installed: ?]
  • pefile [required: >=2017.8.1, installed: ?]
  • pyinstaller-hooks-contrib [required: >=2020.6, installed: ?]
  • pywin32-ctypes [required: >=0.2.0, installed: ?]
  • setuptools [required: Any, installed: 58.1.0]

pyOpenSSL==22.0.0

  • cryptography [required: >=35.0, installed: 37.0.1]
    • cffi [required: >=1.12, installed: 1.15.0]
      • pycparser [required: Any, installed: 2.21]

PySocks==1.7.1
selenium==4.1.3

  • trio [required: ~=0.17, installed: 0.20.0]
    • async-generator [required: >=1.9, installed: 1.10]
    • attrs [required: >=19.2.0, installed: 21.4.0]
    • cffi [required: >=1.14, installed: 1.15.0]
      • pycparser [required: Any, installed: 2.21]
    • idna [required: Any, installed: 3.3]
    • outcome [required: Any, installed: 1.1.0]
      • attrs [required: >=19.2.0, installed: 21.4.0]
    • sniffio [required: Any, installed: 1.2.0]
    • sortedcontainers [required: Any, installed: 2.4.0]
  • trio-websocket [required: ~=0.9, installed: 0.9.2]
    • async-generator [required: >=1.10, installed: 1.10]
    • trio [required: >=0.11, installed: 0.20.0]
      • async-generator [required: >=1.9, installed: 1.10]
      • attrs [required: >=19.2.0, installed: 21.4.0]
      • cffi [required: >=1.14, installed: 1.15.0]
        • pycparser [required: Any, installed: 2.21]
      • idna [required: Any, installed: 3.3]
      • outcome [required: Any, installed: 1.1.0]
        • attrs [required: >=19.2.0, installed: 21.4.0]
      • sniffio [required: Any, installed: 1.2.0]
      • sortedcontainers [required: Any, installed: 2.4.0]
    • wsproto [required: >=0.14, installed: 1.1.0]
      • h11 [required: >=0.9.0,<1, installed: 0.13.0]
  • urllib3 [required: ~=1.26, installed: 1.26.9]

C:\Users\User1\Desktop\20220504_PythonSetup\src>

結局追加モジュールのダウンロードは一切やっていないつもりなので、なぜ今度はうまく行ったのかよく分からずです。
※一度だけ「--no-deps」オプションを付けた状態でインターネット接続をONにしたままseleniumのインストールコマンドを発行してしまいました(上記結果はその後で取得)が、その時事象発生時の状況とは異なる状態になってしまったのでしょうか…(アンインストール・再インストールは1.のWebサイトに辿り着く前にやったため)

ただ、プロトタイプが出来たらpyinstallerでexe化予定があるため、そちらには不足しているパッケージがあるようなので、このWebサイトの内容を元に対応を予定しています。

投稿2022/05/07 14:18

編集2022/05/07 14:24
Natsuki902

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問