【问题标题】:'geckodriver' executable needs to be in PATH'geckodriver' 可执行文件需要在 PATH 中
【发布时间】:2018-10-31 20:58:01
【问题描述】:

Mac OS 用户在这里。我正在尝试在我的 python IDLE 中运行一个命令:

from selenium import webdriver
browser = webdriver.Firefox()

我收到以下错误消息:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    browser = webdriver.Firefox()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 160, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

我运行了brew install geckodriver,而which geckodriver 返回/usr/local/bin/geckodriver,所以我确定它安装正确。但是,它似乎仍然无法正常运行?

【问题讨论】:

    标签: python path geckodriver


    【解决方案1】:

    我使用的是 ubuntu 18.04,在这里遇到了同样的问题。

    就我而言,这很好用。希望对你有用!

    sudo apt-get install firefox-geckodriver
    

    【讨论】:

      【解决方案2】:

      最适合我的事情之一就是复制可执行的 geckodriver 文件。

      进入 bin 文件夹:

      如果您在 linux 上,您可以在以下位置找到它:

      /home/user_name/.local/bin
      

      在此处粘贴您的 geckodriver exe。

      所以你的最终代码应该是这样的:

          from selenium import webdriver
          driver = webdriver.Firefox(executable_path = 'geckodriver')
      

      这对我来说就像魅力一样,但不确定它是否正确。

      【讨论】:

        【解决方案3】:

        你的错误信息很清楚:

        FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'
        

        您必须设置 geckodriver 的路径。有不同的方法可以做到这一点。

        您可以在代码中设置壁虎驱动程序的路径:

        from selenium import webdriver
        browser = webdriver.Firefox(executable_path=r'/.../path2Your/geckodriver')
        

        或在 PATH 环境变量中插入 geckodriver 的路径:

        export PATH=$PATH:/.../path2Your/geckodriver
        

        我从未尝试在 mac 操作系统中移动 /usr/local/bin/ 中的可执行文件。我在 ubuntu 操作系统中尝试过,它可以工作。我觉得应该没问题。

        可能是因为该文件不可执行。如果不是,请转到/usr/local/bin/ 并使其可执行:

        chmod +x geckodriver
        

        【讨论】:

        • 谢谢。在我的情况下,可执行路径选项工作正常
        猜你喜欢
        • 2017-11-21
        • 2020-09-11
        • 1970-01-01
        • 1970-01-01
        • 2017-03-04
        • 2018-03-25
        • 2018-07-11
        • 2017-03-05
        相关资源
        最近更新 更多