我是编程新手,大约两个月前就开始使用Python了,我正在复习斯威加特的Automate the Boring with Python text。我正在使用Spyder 3,并且已经安装了selenium模块和Firefox浏览器。我在python文件中使用了以下代码
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://inventwithpython.com')我得到这个错误:
Message: 'geckodriver' executable needs to be in PATH.除了进入终端并使用以下命令安装之外,我还下载了geckodriver.exe
brew install geckodriver奇怪的是,如果我进入终端,输入"python“,然后把代码放进去,它就能工作了,但当我在Spyder中运行文件时却不行。我需要将geckodriver.exe文件放在哪里才能正常工作?我尝试将其放入各种文件夹(与python文件相同的文件夹、与webdriver文件相同的文件夹、用户bin等),但得到相同的错误
我看过类似的问题,但似乎找不到有效的方法。我也尝试过Chrome,但我得到了同样的错误,但是使用chromedriver。
which geckodriver收益/usr/local/bin/geckodriver
我也是在Mac上,所以文件路径对我来说比在windows上更难一些。
发布于 2017-01-03 20:11:32
解决方法:我将geckodriver exe放在/Users/sethkillian/anaconda/bin中,现在它可以在Spyder上正常工作了。谢谢你的帮助!
发布于 2017-04-05 11:29:42
下载geckodriver并将其放入/usr/local/bin;然后按如下方式使用webdriver.Firefox:
from selenium import webdriver
driver = webdriver.Firefox(executable_path = '/usr/local/bin/geckodriver')发布于 2017-10-16 23:13:38
也许有人可以解释为什么找不到路径。我也希望这能帮助其他人解决他们自己的路径问题。
您当然可以将geckodriver可执行文件放在您喜欢的任何位置。在我的Mac上,我选择了~/.local/bin,因为它是存储特定于用户帐户的可执行文件的常见位置。例如。Heroku CLI放在~/.local/share中。此方法还消除了在将可执行文件添加到/usr/local/bin等系统位置时需要超级用户访问的情况
然后,我使用以下命令将其添加到.profile中的路径中
EXPORT PATH=$PATH:~/.local/bin我通过打开终端并检查以下内容进行了测试:
geckodriver --version它工作得很好。
但是在Python虚拟环境中,由于某些原因,系统路径不能通过??我通过添加到selenium测试脚本中发现了这一点:
import sys
for p in sys.path:
print(p)结果显示:
/Users/philip/Devel/myproject
/Users/philip/.virtualenvs/myproject/lib/python36.zip
/Users/philip/.virtualenvs/myproject/lib/python3.6
/Users/philip/.virtualenvs/myproject/lib/python3.6/lib-dynload
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6
/Users/philip/.virtualenvs/myproject/lib/python3.6/site-packages因此,最终我必须使用以下命令指定路径:
self.browser = webdriver.Firefox(executable_path=r'/Users/philip/.local/bin/geckodriver')这种方法工作得很好,但我仍然想知道为什么我不能在虚拟环境中设置路径。
https://stackoverflow.com/questions/41435983
复制相似问题