1

私はプログラミングが初めてで、いくつかのpythonコースを受講し、学んだことを適用しようとしています。

私は macOS Sierra を実行していて、自分のマシンに python2 と 3 がインストールされています。python3 を使いたかっただけですが、以前のコースでは python2 から始めるように指示されていましたが、それが悪いことだったのかどうかはわかりません。 .

とにかく、Automate the Boring Stuff with Python コース (python3 を使用) を受講すると、次のコードに出くわしました。

#! python3
from selenium import webdriver
browser = webdriver.Firefox()

次のエラーメッセージが表示されました。

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/Alex/Anaconda/Templates/selenium_firefox.py", line 3, in <module>
    browser = webdriver.Firefox()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 71, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x1029777f0>>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 163, in __del__
    self.stop()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
[Finished in 0.501s]

ここで私の問題を解決すると思われる答えを見つけました: Selenium using Python - Geckodriver executable needs to be in PATH

しかし、コンピューターで PATH を操作する方法や、コンピューターが動作するようにファイルを整理する方法がよくわかりません。

端末で次のコードを実行しました (他のクエリの指示に従って): exportPATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step

しかし、それは私には意味がありませんし、うまくいきませんでした。また、ダウンロード (元の場所) から Geckodriver ファイルを取得し、Anaconda フォルダー内に配置しようとしました。

とにかく、問題は、コンピューター自体がどのように構成されているかを本当に知らないため、コードを適切に処理できないことだと確信しています。

したがって、特定のケースの解決策と、参照テキスト、チュートリアル、ビデオ、またはこれらすべてがどのように機能するかをよりよく理解するために使用できる同様のものを求めたいと思います(その問題に関する良い資料はまだ見つかりませんでした)。

前もって感謝します!

4

3 に答える 3

1

UNIX 用に見つけたリンクが機能するはずです。と の間にスペースがexportありPATHますか? コピーの間にスペースがないため、機能しません。Python パスの geckodriver が Windows と UNIX で同じである場合は、次のことを試すことができます。

cp geckodriver.exe \path\to\Python\

次に、geckodriver は Python のベース パスに格納されるため、自動的に初期化されます。

于 2016-11-07T08:26:40.017 に答える