为啥要装这个
接需求需要在服务器上跑自动化截图,选了Playwright,因为比Selenium轻量,而且自带浏览器,不用额外装Chrome。服务器是宝塔面板,CentOS系统,Python版本是宝塔自带的3.12.13,路径贼长:/www/server/pyporject_evn/versions/3.12.13/bin/python3。
一开始我天真地以为宝塔那个pyporject_evn就是虚拟环境,结果一看里面有个versions文件夹,才晓得这是Python本体存放处,真正的虚拟环境是宝塔创建项目时才生成的项目名_venv。不过我懒得新建项目,直接拿这个Python裸奔测试。
安装过程
1. 装Python库
先试着用pip装:
/www/server/pyporject_evn/versions/3.12.13/bin/python3 -m pip install playwright
装得挺快,没啥毛病。但我知道光装库不行,还得下浏览器内核。
2. 下载浏览器
执行:
/www/server/pyporject_evn/versions/3.12.13/bin/python3 -m playwright install chromium
下载了几百MB,速度看网速。等了好一会儿,提示下载完成。
3. 写个测试脚本
我参照官方示例写了个test.py,放在同目录下方便执行:
from playwright.sync_api import sync_playwright
import sys
print("? 开始测试 Playwright 环境...")
try:
with sync_playwright() as p:
print("? 正在启动 Chromium 浏览器(无头模式)...")
browser = p.chromium.launch(
headless=True,
args=['--no-sandbox', '--disable-setuid-sandbox']
)
page = browser.new_page()
print("? 正在访问 ...")
# 注意这里 URL 和 timeout 之间用逗号分隔
page.goto("https://www.baidu.com/",timeout=15000)
title = page.title()
print(f"✅ 页面标题获取成功: {title}")
screenshot_path = "/www/server/pyporject_evn/versions/3.12.13/bin/playwright_test_screenshot.png"
page.screenshot(path=screenshot_path)
print(f"? 截图已保存至: {screenshot_path}")
result = page.evaluate("() => 1 + 1")
print(f"? JS 计算测试 (1+1): {result}")
browser.close()
print("? 测试完全通过!环境没有任何问题。")
except Exception as e:
print(f"❌ 测试过程中出现错误: {e}")
sys.exit(1)然后运行:
/www/server/pyporject_evn/versions/3.12.13/bin/python3 test.py
结果“啪”一下报错了。
遇到的坑和解决办法
坑一:缺少系统图形库 – libatk-1.0.so.0
这次报错长这样:
error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file
一看就是系统缺依赖,Playwright的Chromium需要一堆图形界面库,服务器又没装桌面环境。百度了一圈,发现Playwright自带一个命令能自动装依赖:
/www/server/pyporject_evn/versions/3.12.13/bin/python3 -m playwright install-deps
执行后噼里啪啦装了一堆包,我以为万事大吉,结果再跑还是报同样的错。后来发现我的CentOS默认没有install-deps需要的apt或者某些依赖,干脆手动装了缺失的那几个:
yum install -y atk at-spi2-atk cups-libs libxkbcommon libXcomposite libXdamage libXrandr mesa-libgbm pango cairo alsa-lib
装完再跑,libatk的错没了。
最终测试成功
改完所有错误,再次运行:
/www/server/pyporject_evn/versions/3.12.13/bin/python3 test.py
终于看到了期待的输出:

而且截图功能也正常。测试通过,环境可用。
笔记总结
- 区分Python本体和虚拟环境:宝塔的
versions/下是解释器,要用它创建项目时宝塔会自动生成项目名_venv。 - Playwright两步安装:
pip install playwright是库,playwright install是浏览器内核,缺一不可。 - 系统依赖跑不掉:服务器无图形界面,必须用
install-deps或手动装atk、libgbm等库,不然浏览器起不来。
下次再配环境,直接把这篇文章翻出来照着干,省得再踩一遍坑。
Nginx 启动时没有任何错误日志就悄悄退出?本文通过宝塔面板的真实案例,详解如何使用 strace 命令追踪系统调用,精准定位因缺少 cjson.so 库导致的 Nginx 启动失败。
CentOS 7 停止维护后,宝塔面板安装 PHP fileinfo 扩展报错 “C compiler cannot create executables”。本文详细分析原因,并提供一套完整、安全的解决方法,包括切换阿里云 Vault 源、修复 GPG 密钥缺失、安装编译器,最终成功安装扩展。
解决Windows宝塔面板无法启动问题,解决方法就是找到C:\BtSoft\panel\script\bt.bat(具体根据自己宝塔安装路径),通过重启面板服务或修复面板即可完成修复面板无法启动的问题
在一次常规的OpenCloudOS 9.4服务器环境搭建中,宝塔面板编译安装PHP 8.2.28时遭遇了令人费解的失败。经过层层排查,最终发现是自定义curl库的libssh2依赖缺失所致。
全面解析2025年个人服务器选购要点,涵盖阿里云、腾讯云、UCloud推荐,内存与带宽建议,宝塔/1Panel环境适配,以及MySQL 5.6/5.7/8.0版本硬件要求对比。
如果你使用了windows版宝塔面板,并且采用nginx 作为WEB服务器,在安装时fastadmin可能会出现页面无法打开的情况。解决办法其实比较简单。以安装的PHP7.3版本为例按照下图的路径找到PHP配置文件打开文件,如下图注释掉try_files $uri = 404;这行代码最后重启PHP,配置即可生效。