【问题标题】:Python Splinter geckodriver PATH OSXPython Splinter geckodriver PATH OSX
【发布时间】:2017-12-25 04:42:32
【问题描述】:

在阅读了 StackOverflow 上的大量答案后,我发现为了让 Splinter 工作,我需要将 geckodriver 可执行文件添加到我的 PATH 变量中。

这就是我所做的:

在终端:

echo 'export PATH=$PATH: /Applications/anaconda/pkgs/geckodriver

然后我通过以下方式确认它在那里:

echo $PATH

...显示:

/Applications/anaconda/pkgs/geckodriver:...

然后我尝试了这个(重新启动我的 Spyder IDE 后):

from splinter import Browser
browser = Browser('firefox')

...仍然会出现此错误:

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

【问题讨论】:

  • OSX 上的路径分隔符是:/Applications/ 之前有一个额外的空格,这可能是导致问题的原因
  • 我刚试过 echo 'export PATH=$PATH:/Applications/anaconda/pkgs/geckodriver (没有多余的空间),但没有骰子。 :(

标签: python selenium geckodriver splinter path-variables


【解决方案1】:

将您的 geckodriver 二进制文件移动到 /usr/bin/

【讨论】:

    【解决方案2】:

    来自linfo.org(强调我自己的):

    PATH 是 Linux 和其他类 Unix 中的环境变量 告诉 shell 要搜索哪些目录的操作系统 可执行文件

    换句话说,问题(除了路径中的额外空间)是您将二进制文件本身的路径添加到搜索路径而不是包含该二进制文件的 目录。如果您再次尝试使用export PATH=$PATH:/Applications/anaconda/pkgs 并确认geckodriver 二进制文件是可执行的并且直接位于/Applications/anaconda/pkgs 目录(或路径中的任何其他目录)中,那么一切应该会按预期工作。

    或者,您当然可以将二进制文件放在 OSX 上默认情况下已在搜索路径中的目录之一中,例如 /usr/local/bin/bin 或 @Rubi Jihantoro 建议的 /usr/bin

    为了确定 shell 是否可以找到您的二进制文件,您可以随时在该二进制文件上运行 which,它会打印出找到二进制文件的位置(如果在任何地方),例如

    > which geckodriver
    /Applications/anaconda/pkgs/geckodriver
    

    【讨论】:

      猜你喜欢
      • 2020-12-18
      • 2017-11-21
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2017-03-05
      相关资源
      最近更新 更多