gunicorn [15246]:消息:“ geckodriver”可执行文件必须位于PATH中

时间:2020-10-12 07:15:06

标签: selenium ubuntu nginx gunicorn geckodriver

我目前正在尝试在Ubuntu 20.04服务器上使用selenium和geckodriver运行python脚本。我正在使用gunicorn和nginx来设置我的flask应用程序,但是我已经尝试了好几天了,以在所有类似的文章上使用每个答案,但是对于其他人来说,仍然没有任何效果。

有人知道我在做什么错吗?

Firefox版本– Mozilla Firefox 81.0

硒版本-3.141.0

Geckodriver版本– 0.27.0

代码:(我已经在下面尝试了这6种方法)

def login(self):
    try:
        print("Logging in...")
        # 1)
        ff_options = FirefoxOptions()
        ff_options.headless = True
        self.driver = webdriver.Firefox(options=ff_options)

        # 2)
        ff_options = FirefoxOptions()
        ff_options.headless = True
        self.driver = webdriver.Firefox(executable_path="./geckodriver", options=ff_options)

        # 3)
        self.driver = webdriver.Firefox()

        # 4)
        self.driver = webdriver.Firefox('./geckodriver')

        # 5)
        binary = FirefoxBinary('/usr/local/bin/geckodriver')
        browser = webdriver.Firefox(firefox_binary=binary)

        # 6)
        binary = FirefoxBinary('/usr/bin/firefox')
        driver = webdriver.Firefox(firefox_binary=binary, executable_path="/home/ubuntu/cole/instagram_bot_v2")

        self.driver.get('https://www.instagram.com/accounts/login')

我收到的错误:

Oct 12 07:00:11 ip-172-31-32-84 gunicorn[15245]: Message: 'geckodriver' executable needs to be in PATH.

我曾尝试将geckodriver可执行文件本身放在/ usr / bin,/ usr / local / bin以及我的项目目录中,所有这些文件均设置为可执行文件,但在运行时似乎没有什么不同,它们都得到相同的路径错误。

有人知道我可以尝试什么吗?

1 个答案:

答案 0 :(得分:0)

您可以做的一件事是将geckodriver移动到保存程序的相同目录。然后,您可以仅通过使用geckodriver来启动webdriver.Firefox(),而不用指定可执行文件的完整路径。这样可以节省您很多时间。