繁体   English   中英

IOError:[Errno 30] 只读文件系统:'geckodriver.log'

[英]IOError: [Errno 30] Read-only file system: '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

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

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

但是,日志可以存储在/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]

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

在正常情况下,可以通过配置硒解决这个写日志来/dev/null通过设置BROWSER_LOGFILE环境变量/dev/null 我不确定这是否会遇到相同的文件系统问题,但它可能值得一试。

我通过以下方式禁用日志解决了这个问题:

driver = webdriver.Firefox(service_log_path='/dev/null')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM