Python Splinter geckodriver 路径 OSX

Python Splinter geckodriver PATH OSX

在 Whosebug 上阅读了大量答案后,我发现为了让 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. 

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

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

PATH is an environmental variable in Linux and other Unix-like operating systems that tells the shell which directories to search for executable files

换句话说,问题(除了路径中额外的 space 之外)是您将二进制文件本身的路径添加到搜索路径而不是 目录 其中包含该二进制文件。如果您再次尝试使用 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