social-auto-upload 是一个支持多平台(抖音、快手、小红书、Bilibili)的 Python 自动上传项目。在 Linux 环境下部署时,我遇到了很多坑,总结如下,希望能帮助其他同学快速搭建环境。
一、背景
我在 Ubuntu 22.04 / 20.04 下部署项目,目标是:
- 使用 Python 虚拟环境隔离依赖
- 安装项目依赖并使用 CLI 功能
- 配置 Chromium 进行无头浏览器操作
在安装过程中遇到了以下问题:
- Python 版本兼容问题
- 虚拟环境创建失败
- f-string 报错
- Chromium 下载失败
- pip 安装依赖失败
二、Python 版本问题
问题:
-
官方文档推荐 Python 3.7 或 3.8
-
Python 3.10:
textSyntaxError: f-string expression part cannot include a backslash -
Python 3.7:
textERROR: Could not find a version that satisfies the requirement setuptools>=69- 原因:最新 setuptools 不支持 Python 3.7
解决方案:
- 使用 Python 3.8
- 修改源码中 f-string 语法:
python
# 安全写法
text_clean = all_text.strip().replace('\n', ' ')
xiaohongshu_logger.debug(_msg("🔑 ", f"预览区域内容: {text_clean}"))
- 原理:f-string 内不要直接写
\或表达式,先赋值再用
三、虚拟环境创建失败
问题:
text
The virtual environment was not created successfully because ensurepip is not available
解决方案:
bash
sudo apt update
sudo apt install python3.8 python3.8-venv python3.8-distutils -y
python3.8 -m venv venv
source venv/bin/activate
- 激活后命令行前缀显示
(venv) - pip 安装、CLI 命令都在虚拟环境中执行
四、依赖安装失败
问题:
- 执行:
bash
pip install -e .
报错:
text
subprocess-exited-with-error
Could not find a version that satisfies the requirement setuptools>=69
解决方案:
- 使用 Python 3.8 虚拟环境
- 升级 pip:
bash
pip install --upgrade pip
pip install -e .
- 建议使用国内镜像加速:
bash
pip install -i http://mirrors.tencent.com/pypi/simple --upgrade pip
五、Chromium 下载失败
问题:
- patchright 下载 Chromium:
text
Error: Download failed: server returned code 404
Error: read ECONNRESET
-
原因:
- 国内访问官方 CDN 不稳定
- 部分版本在镜像中不存在
解决方案 1:使用国内镜像
bash
PLAYWRIGHT_DOWNLOAD_HOST="https://npmmirror.com/mirrors/playwright" patchright install chromium
解决方案 2:手动下载
bash
# 下载 Chromium
wget https://playwright.azureedge.net/builds/chromium/<version>/chrome-linux64.zip
# 解压到指定目录
sudo mkdir -p /opt/chrome-linux64
sudo unzip chrome-linux64.zip -d /opt/chrome-linux64
配置 conf.py
python
# 指向 Chromium 可执行文件
LOCAL_CHROME_PATH = "/opt/chrome-linux64/chrome"
LOCAL_CHROME_HEADLESS = True
DEBUG_MODE = False
六、f-string 源码兼容性
- 原本报错:
python
xiaohongshu_logger.debug(_msg("🔑 ", f"预览区域内容: {all_text.strip().replace('\\n', ' ')}"))
- 修复写法:
python
text_clean = all_text.strip().replace('\n', ' ')
xiaohongshu_logger.debug(_msg("🔑 ", f"预览区域内容: {text_clean}"))
七、验证 CLI
激活虚拟环境后:
bash
source venv/bin/activate
# 查看 CLI 帮助
sau --help
# 查看抖音子命令
sau douyin --help
输出正常即可使用各平台功能,例如上传视频、笔记等。
八、完整 Linux 安装命令示例
bash
# 1. 安装 Python 3.8 和 venv
sudo apt update
sudo apt install python3.8 python3.8-venv python3.8-distutils -y
# 2. 克隆项目
git clone https://github.com/dreammis/social-auto-upload.git
cd social-auto-upload-main
# 3. 创建并激活虚拟环境
python3.8 -m venv venv
source venv/bin/activate
# 4. 升级 pip
pip install --upgrade pip
# 5. 安装项目依赖
pip install -e .
# 6. 手动下载 Chromium(替代 patchright 下载)
wget https://playwright.azureedge.net/builds/chromium/<version>/chrome-linux64.zip
sudo mkdir -p /opt/chrome-linux64
sudo unzip chrome-linux64.zip -d /opt/chrome-linux64
# 7. 修改 conf.py
# LOCAL_CHROME_PATH = "/opt/chrome-linux64/chrome"
# LOCAL_CHROME_HEADLESS = True
# DEBUG_MODE = False
# 8. 测试 CLI
sau --help
sau douyin --help
注:
<version>替换成你下载的 Chromium 版本号- 确保
conf.py中LOCAL_CHROME_PATH指向解压后的chrome可执行文件
九、总结
-
Linux 下部署 social-auto-upload 主要坑:
- Python 版本不兼容
- f-string 语法报错
- 虚拟环境依赖缺失
- Chromium 下载失败
- pip 依赖版本限制
-
解决策略:
- 使用 Python 3.8 虚拟环境
- 修复 f-string 写法
- 手动下载 Chromium 或使用国内镜像
- 国内镜像加速 pip 安装依赖
通过以上方法,可以保证 social-auto-upload 在 Linux 下顺利运行。