IOError: [Errno 30] Read-only file system: '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
我试图用谷歌搜索它,但找不到任何东西。请提出任何建议,我该如何解决这个错误。
正如其他人指出的那样,App Engine 应用程序 运行 在沙盒环境中。这些沙盒条件之一是不允许您修改文件系统。
在正常情况下,您可以通过将 BROWSER_LOGFILE
环境变量设置为 /dev/null
,将 Selenium 配置为将日志写入 /dev/null
来解决此问题。我不确定这是否会 运行 进入相同的文件系统问题,但它可能值得一试。
正如其他人评论的那样,问题是当前路径中缺少权限。
但是,日志可以存储在 /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]
我正尝试通过单击 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
我试图用谷歌搜索它,但找不到任何东西。请提出任何建议,我该如何解决这个错误。
正如其他人指出的那样,App Engine 应用程序 运行 在沙盒环境中。这些沙盒条件之一是不允许您修改文件系统。
在正常情况下,您可以通过将 BROWSER_LOGFILE
环境变量设置为 /dev/null
,将 Selenium 配置为将日志写入 /dev/null
来解决此问题。我不确定这是否会 运行 进入相同的文件系统问题,但它可能值得一试。
正如其他人评论的那样,问题是当前路径中缺少权限。
但是,日志可以存储在 /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]