4

私はプログラミングには新しく、Pythonで約2か月前から始まり、SweigartのPythonテキストで自動化します。私はSpyder 3を使用していて、すでにセレンモジュールとFirefoxブラウザをインストールしています。私はこのエラーを取得Mac上のPythonでのSelenium - Geckodriverの実行ファイルはPATHにある必要があります

from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get('http://inventwithpython.com') 

のpythonファイルに次のコードを使用:

Message: 'geckodriver' executable needs to be in PATH. 

私が使用してターミナルに入ると、それをインストールするだけでgeckodriver.exeをダウンロードしたの

brew install geckodriver 

奇妙なことに、私が端末に入り、 "python"と入力してコードを入力すると動作しますが、Spyderでファイルを実行したときは動作しません。 geckodriver.exeファイルをどこに置く必要がありますか?私はさまざまなフォルダ(pythonファイルと同じフォルダ、webdriverファイルと同じフォルダ、ユーザーbinなど)に入れてみましたが、同じエラーが発生します。

私は同様の質問を見ました動作するものを見つけることはできないようです。私もChromeで試したことがありますが、chromedriverと同じエラーが表示されます。

which geckodriver 

ファイルパスが少し難しく私のために窓によりますので、私は、Mac上でもよ/usr/local/bin/geckodriver

が得られます。

+0

'which geckodriver'の結果は何ですか? – alecxe

+0

端末では、結果は/ usr/local/bin/geckodriverです。 –

+0

コンソール(端末内)で 'which geckodriver'を実行すると、どのような出力が得られますか? – alecxe

答えて

2

解決済み:geckodriver exeを/ Users/sethkillian/anaconda/binに配置しましたが、今はSpyderから問題なく動作します。助けてくれてありがとう!

2

geckodriverをダウンロードして/ usr/local/binに入れます。 は、このようwebdriver.Firefoxを使用します。

from selenium import webdriver 
driver = webdriver.Firefox(executable_path = '/usr/local/bin/geckodriver') 
0

パスが見つからない理由はおそらく、誰かが説明することができます。また、他の人が自分のパスの問題をトラブルシューティングするのに役立つことを願っています。

どこでも好きな場所でgeckodriverを実行可能にすることができます。私のMacでは、〜/ .local/binを選んだのは、ユーザーアカウントに固有の実行ファイルが格納される共通の場所だからです。例えば。 Heroku CLIは〜/ .local/shareに置かれます。/usr/local/binに

のようなシステムの場所に実行可能ファイルを追加するとき、このアプローチはまた、私は、私はによってテスト

EXPORT PATH=$PATH:~/.local/bin 

で自分の.profile内のパスに追加して、スーパーユーザーのアクセスの必要性を排除しますターミナルを開き、とチェック:うまく働い

geckodriver --version 

しかし、何らかの理由でPython仮想環境から、システムパスが渡されませんか?私はセレンのテスト・スクリプトに追加することにより、これを発見:

import sys 

    for p in sys.path: 
     print(p) 

示された:

/Users/philip/Devel/myproject 
    /Users/philip/.virtualenvs/myproject/lib/python36.zip 
    /Users/philip/.virtualenvs/myproject/lib/python3.6 
    /Users/philip/.virtualenvs/myproject/lib/python3.6/lib-dynload 
    /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6 
    /Users/philip/.virtualenvs/myproject/lib/python3.6/site-packages 

を最終的に私はパスを指定する必要がありましたので:

self.browser = webdriver.Firefox(executable_path=r'/Users/philip/.local/bin/geckodriver') 

このアプローチはうまく動作します、私はまだ仮想環境でパスを設定できなかった理由を知りたいです。

関連する問題