Python3.7运行TikTokApi代码报cannot import sync_playwright错误
问题概述
触发报错:ImportError: cannot import name 'sync_playwright' from 'playwright'
运行环境:Python 3.7
报错截图:
待运行原始代码:
import TikTokApi api = TikTokApi.get_instance(use_selenium=True, executablePath="C:\Program Files(x86)\Google\Chrome\Application") user = api.user(username="therock") for video in user.videos(): print(video.id) for liked_video in api.user(username="public_likes").videos(): print(liked_video.id)
报错根因
- Python版本与依赖版本不兼容:
sync_playwright是Playwright的同步调用入口,Playwright自1.37版本起正式停止对Python 3.7的支持,在Python3.7环境下安装高版本Playwright时,会因为语法、依赖逻辑不匹配出现模块导入失败;如果安装的是过低版本Playwright,又会因为尚未内置sync_playwright方法触发同样报错。 - TikTokApi版本与初始化逻辑不匹配:代码中使用的
get_instance()、use_selenium=True都是5.x早期版本TikTokApi的写法,6.0之后的TikTokApi已经完全移除Selenium支持,默认绑定Playwright作为浏览器驱动,新旧版本API混用会触发依赖加载异常。 - Playwright安装流程缺失:仅通过pip安装Playwright主包不会自动下载浏览器二进制依赖,安装不完整时也可能出现模块导入异常。
解决方案
按优先级选择以下方案即可:
升级Python版本(推荐)
将本地Python环境升级到3.8及以上的稳定版本(最高支持到3.11,兼容性最好),从根源解决所有依赖的版本兼容问题。升级后重新安装依赖:pip install --upgrade pip pip install TikTokApi playwright playwright install同时适配新版TikTokApi的API写法,修改代码如下:
from TikTokApi import TikTokApi # 新版TikTokApi要求使用上下文管理器初始化实例 with TikTokApi() as api: user = api.user(username="therock") for video in user.videos(): print(video.id) liked_user = api.user(username="public_likes") for liked_video in liked_user.videos(): print(liked_video.id)固定兼容版本适配Python3.7(仅临时使用)
如果暂时无法升级Python,先卸载现有冲突包,再安装Python3.7适配的最后一版兼容依赖:pip uninstall -y TikTokApi playwright pip install playwright==1.36.0 pip install TikTokApi==5.2.2 playwright install安装完成后即可运行Selenium模式代码,注意把代码里Windows路径的反斜杠做转义,或者改成原始字符串避免转义错误:
import TikTokApi # 路径前加r标记为原始字符串,避免\x转义导致路径识别错误 api = TikTokApi.get_instance(use_selenium=True, executablePath=r"C:\Program Files(x86)\Google\Chrome\Application") user = api.user(username="therock") for video in user.videos(): print(video.id) for liked_video in api.user(username="public_likes").videos(): print(liked_video.id)
内容的提问来源于stack exchange,提问作者Abdellatif Kraiem
相关产品推荐
相关产品推荐

