python - 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
我试图用谷歌搜索它,但找不到任何东西。请任何建议,我该如何解决这个错误。
解决方案
正如其他人所评论的那样,问题是当前路径中缺少权限。
但是,日志可以存储在/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]
推荐阅读
- ruby-on-rails - 如何在测试环境中从邮件程序发送电子邮件
- c# - 查询时如何尊重本地更改?
- amazon-web-services - 如何使用 S3 uri?
- kubernetes - 服务名称未在 Kubernetes 集群中解析
- amazon-web-services - 创建地理匹配 AWS WAF 条件/规则并使用 CloudFormation 将其连接到现有 CloudFront 分配
- sql - 如果它存在于任一表中,则在寻求返回 id 的地方合并连接
- php - 不知道如何在 php 中正确包装 php 元素
- tensorflow - CPU TensorFlow 无法导入
- node.js - 用于注册、/register 或 /user/new 的 RESTful 路由?
- python - PyQt5在MainWindow上使用拖放移动按钮