首页 > 解决方案 > IOError:[Errno 30] 只读文件系统:'geckodriver.log'

问题描述

我正在尝试通过单击 HTML 页面上的按钮来运行 python 脚本。Python 脚本使用 Selenium Firefox 驱动程序来执行一些任务。当我从命令提示符运行它时,该脚本运行良好,但是当我尝试通过带有应用程序的网页运行它时。它给出了以下错误。

  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\python\runtime\stubs.py", line 278, in __init__
    raise IOError(errno.EROFS, 'Read-only file system', filename)
IOError: [Errno 30] Read-only file system: 'geckodriver.log'

我正在使用 Google App Engine 的 webapp2 框架和 python 2.7

我试图用谷歌搜索它,但找不到任何东西。请任何建议,我该如何解决这个错误。

标签: pythonhtmlseleniumgoogle-app-enginegeckodriver

解决方案


正如其他人所评论的那样,问题是当前路径中缺少权限。

但是,日志可以存储在/tmp文件夹 [1] 中或使用/dev/null。可以使用以下 python 行来完成:

from selenium import webdriver

your_executable_path = "/tmp/geckodriver"
# Or using webdriver_manager [2]
# from webdriver_manager.firefox import GeckoDriverManager
# your_executable_path = GeckoDriverManager(path="/tmp").install()
driver = webdriver.Firefox(executable_path=your_executable_path, log_path='/tmp/geckodriver.log')
driver.get('http://www.google.com/')

请记住,必须将浏览器安装到系统中。[3]


推荐阅读