BeagleBone运行Python调用webbrowser模块打开网页无响应如何解决?
BeagleBone设备下Python webbrowser模块不触发打开操作解决方法
常见原因及对应解决方案
1. URL格式不符合要求
你当前使用的URL不带HTTP/HTTPS协议头,嵌入式设备的精简Python环境中,webbrowser模块无法识别无协议的链接,会直接静默返回失败。
修复方法:给URL补充协议头:
url = 'https://www.google.com'
2. 系统未注册可用浏览器
webbrowser模块依赖系统预设的浏览器列表,BeagleBone的官方精简镜像默认不会预装浏览器,也没有配置浏览器注册信息,会导致模块直接跳过执行。
解决步骤:
- 先安装对应类型的浏览器:
若使用命令行模式,可安装轻量命令行浏览器:sudo apt update && sudo apt install w3m
若使用图形桌面环境,可安装火狐精简版:sudo apt update && sudo apt install firefox-esr - 手动注册浏览器后再调用,不要使用默认的
open()方法,示例代码如下:
import webbrowser # 注册指定浏览器,下方以w3m为例,火狐可替换路径为/usr/bin/firefox-esr webbrowser.register('custom_browser', None, webbrowser.GenericBrowser('/usr/bin/w3m')) url = 'https://www.google.com' # 调用指定浏览器打开链接 open_res = webbrowser.get('custom_browser').open(url) # 可打印返回值判断是否调用成功,返回True为调用成功,False为失败 print(open_res)
3. 图形浏览器缺少显示环境变量
如果你通过SSH远程执行脚本,且要启动图形浏览器,需要手动指定DISPLAY环境变量,否则浏览器无法找到显示输出设备,会静默退出。
运行脚本前执行如下命令即可:
export DISPLAY=:0 && python3 你的脚本名称.py
内容的提问来源于stack exchange,提问作者NeedhelpInPython
相关产品推荐
相关产品推荐

