在Streamlit服务器部署Playwright时遇依赖安装错误求助
Streamlit部署Playwright依赖缺失问题解决方法
核心原因
问题出在playwright install-deps需要管理员权限(sudo),但通过代码里的os.system执行时,Streamlit运行进程没有足够权限完成系统依赖安装,导致浏览器运行所需的底层库缺失。
解决办法
1. 服务器系统层面手动安装依赖
登录到Streamlit所在的服务器,直接执行以下命令之一:
- 用Playwright自带命令一键安装所有依赖:
sudo playwright install-deps - 或者手动安装报错中列出的所有apt包:
sudo apt-get install libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libatspi2.0-0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libpango-1.0-0 libcairo2 libasound2 libwayland-client0
2. Streamlit Cloud部署场景配置文件处理
如果是用Streamlit Cloud部署,无需手动登录服务器,通过配置文件自动安装依赖:
- 创建
packages.txt文件,将所有需要的系统依赖写入:libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libatspi2.0-0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libpango-1.0-0 libcairo2 libasound2 libwayland-client0 - 在
requirements.txt中添加playwright,确保Python依赖被安装:
部署时Streamlit Cloud会自动读取这两个文件,完成系统依赖和Python依赖的安装。playwright
3. 代码层面优化(辅助)
完成系统依赖安装后,代码中保留playwright install即可,无需再执行install-deps:
import os os.system('playwright install')
或者更推荐用Playwright的Python API来安装浏览器:
from playwright.sync_api import sync_playwright with sync_playwright() as p: p.chromium.install() # 后续浏览器操作代码
内容的提问来源于stack exchange,提问作者Sushil
相关产品推荐
相关产品推荐

