Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python geckodriver可执行文件需要位于路径中_Python - Fatal编程技术网

Python geckodriver可执行文件需要位于路径中

Python geckodriver可执行文件需要位于路径中,python,Python,我已经阅读了之前关于这个主题的问题,并尝试按照建议进行操作,但仍然会出现错误。在终点站,我跑了 export PATH=$PATH:/Users/Conger/Documents/geckodriver-0.8.0-OSX 我也试过了 export PATH=$PATH:/Users/Conger/Documents/geckodriver 当我运行以下Python代码时 from selenium import webdriver from selenium.webdriver.f

我已经阅读了之前关于这个主题的问题,并尝试按照建议进行操作,但仍然会出现错误。在终点站,我跑了

export PATH=$PATH:/Users/Conger/Documents/geckodriver-0.8.0-OSX
我也试过了

    export PATH=$PATH:/Users/Conger/Documents/geckodriver
当我运行以下Python代码时

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/Users/Conger/Documents/Firefox.app'

driver = webdriver.Firefox(capabilities=firefox_capabilities)
我仍然得到以下错误

Python - testwebscrap.py:8
Traceback (most recent call last):
  File "/Users/Conger/Documents/Python/Crash_Course/testwebscrap.py", line 11, in <module>
    driver = webdriver.Firefox(capabilities=firefox_capabilities)
  File "/Users/Conger/miniconda2/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__
    self.service.start()
  File "/Users/Conger/miniconda2/lib/python2.7/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 AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x1006df6d0>> ignored
[Finished in 0.194s]
Python-testwebscrap.py:8 回溯(最近一次呼叫最后一次): 文件“/Users/Conger/Documents/Python/Crash_Course/testwebcrap.py”,第11行,在 driver=webdriver.Firefox(功能=Firefox\u功能) 文件“/Users/Conger/miniconda2/lib/python2.7/site packages/selenium/webdriver/firefox/webdriver.py”,第135行,在__ self.service.start() 文件“/Users/Conger/miniconda2/lib/python2.7/site packages/selenium/webdriver/common/service.py”,第71行,开始 os.path.basename(self.path)、self.start\u错误消息) selenium.common.exceptions.WebDriverException:消息:“geckodriver”可执行文件需要位于路径中。 异常AttributeError:“服务”对象在忽略中没有属性“进程” [以0.194秒完成]
首先我们知道gekodriver是Firefox的驱动引擎,我们知道
driver.Firefox()
用于打开Firefox浏览器,它将调用gekodriver引擎,因此我们需要给gekodirver一个可执行权限。 因此,我们下载最新的gekodriver解压tar packge,并将gekodriver放在
/usr/bin/

好的,这是我的答案,我已经测试过了。

您可以通过

pip安装selenium==2.53.6


这解决了我的问题

我刚刚从下载了最新版本的geckodriver(我有win7),并在python目录(已经在PATH中)中添加了exe文件

在mac上:

brew install geckodriver
Homebrew是Mac OS X最流行的软件包管理器,您需要在Mac上安装XCode,然后才能从终端访问


如果需要,您可以遵循导出路径,导出路径仅在您输入命令的终端中有效。如果您尝试从其他终端运行脚本,您将得到相同的错误

我终于弄明白了!我没有创建新路径,而是将geckodriver文件添加到bash_概要文件中列出的路径中。马上就开始工作了!有没有比降级更好的替代方案呢?已经成功了,但为什么呢?ubuntu版本并没有按照python软件包升级。因此,我们可以降级selenium,或者在路径中添加gekodriver,并告诉pathonce我在我的系统路径中添加了C:\Program Files(x86)\Python36-32\Lib\site packages\selenium\webdriver\firefox,并将geckodriver.exe文件放在该文件夹中,所有这些都工作正常(windows 10.1)(我很确定我不应该放在确切的路径中)在Ubuntu 18.04 LTS上工作。非常简洁的回答。