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

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

ただいまの
回答率

88.91%

WEB上(CGI)でseleniumを実行できない

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 262

toss

score 52

環境
Conoha VPS
CentOS Apache2.0
Python 3.75
Google Chrome 83.0.4103.116
ChromeDriver 83.0.4103.39
selenium Version: 3.141.0

ディレクトリ
/var/www/cgi-bin/test.py      755

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary
import cgi # CGIモジュールのインポート
import cgitb
cgitb.enable()
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
#driver = webdriver.Chrome('/usr/local/bin/chromedriver')
driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver',options=options)
print("Content-Type: text/plain;charset=utf-8") #HTMLを出力するために必要
print("") #HTMLを出力するために必要
driver.get('https://yahoo.co.jp')
print(driver.title)

/var/www/cgi-bin上で

python test.py


を実行すると

Content-Type: text/plain;charset=utf-8

Yahoo! JAPAN


と結果が返ってきます。

しかし、
xxx.xx.xx(IPアドレス)/cgi-bin/test.py
をWEB上で開くと500エラーになります。

エラーのログを確認すると
no module named selenium python

と出てきます。
seleniumはすでに入っているはずで、以下の結果も確認済みです。

pip install selenium 

Requirement already satisfied: selenium in /root/.pyenv/versions/3.7.5/lib/python3.7/site-packages (3.141.0)
Requirement already satisfied: urllib3 in /root/.pyenv/versions/3.7.5/lib/python3.7/site-packages (from selenium) (1.25.9)

pip3 show webdriverを実行すると

WARNING: Package(s) not found: webdriver


のエラーが出てきます。

また、以前別のサーバー(IPアドレス)で同様の環境で、WEB上で「Yahoo! JAPAN」と出力することに成功しています。
そのサーバーでは
pip3 show webdriverを実行するとなにも出力されません。

何か足りないものはあるでしょうか?
たくさんのサイトを見て何時間も挑戦しましたが、私には解決できませんでした。

お力添えいただけると幸いです。
他に必要な情報があればお知らせください。

どうぞよろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

Requirement already satisfied: selenium in /root/.pyenv/versions/3.7.5/lib/python3.7/site-packages 

から推測すると、ユーザーが使っている Python 環境は、root ユーザーのpyenv に導入した Python でしょうか?

WebサーバーのApache は、CentOS 標準のPython を呼び出しているのだと思われます。

CentOS 標準の Python に Selenium 等の必要なモジュールをインストールするとどうなるでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/25 20:14

    回答ありがとうございます。
    おっしゃる通り、コマンド上で動くPythonとブラウザ上で動くPythonが別物でした。
    entOS 標準の Python に Selenium 等の必要なモジュールをインストールすることで解決いたしました。

    キャンセル

0

#!/usr/bin/env python

が違うのではないでしょうか

SeleniumはPython3にインストールされているとのことなので、python3を指定するのがよいと思います

#!/usr/bin/env python3

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/25 13:41

    回答ありがとうございます。
    ImportError: No module named selenium
    上記のエラーはなくなったものの、以下のエラーがでて解消できませんでした。
    AH01215: /usr/bin/env: python3: No such file or directory

    キャンセル

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

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る