代码之家  ›  专栏  ›  技术社区  ›  jaspreet sohal

IOError:[错误号30]只读文件系统:“geckodriver”。日志'

  •  0
  • jaspreet sohal  · 技术社区  · 6 年前

    我试图通过单击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

    我试着用谷歌搜索,但什么也找不到。任何建议,请,我如何解决这个错误。

    2 回复  |  直到 6 年前
        1
  •  2
  •   MarcosBernal    4 年前

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

    但是,日志可以存储在 /tmp公司 文件夹[1]或使用 /开发/空 。可以使用以下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]

        2
  •  1
  •   Venantius    6 年前

    正如其他人所指出的,应用程序引擎应用程序是在沙盒环境中运行的。沙箱条件之一是不允许您修改文件系统。

    在正常情况下,您可以通过配置Selenium将日志写入 /dev/null 通过设置 BROWSER_LOGFILE 环境变量至 /开发/空 。我不确定这是否会遇到同样的文件系统问题,但这可能值得一试。