VideoLingo 环境重建方案
根据您提供的 VideoLingo 目录截图,您的应用文件本身看起来是完整的,没有受损。之前遇到的 ModuleNotFoundError: No module named 'json_repair' 错误以及更早的 ValueError: Signal already used by VM or OS: SIGQUIT 错误,都指向了环境配置和依赖问题,而非文件损坏。
以下是根据您提供的博客文章《VideoLingo+IndexTTS2》[1] 总结的环境重建方案,旨在确保您的 Python 环境和系统依赖正确配置,从而解决应用运行问题。
1. 确认并清理现有环境
在重建环境之前,建议先清理或确认当前环境的状态,避免旧的配置干扰。
-
确认当前 Conda 环境:
conda env list确认
videolingo环境是否存在。如果存在,可以考虑先将其移除,以便全新创建:conda remove -n videolingo --all如果
videolingo环境不存在,则无需此步骤。 -
清理 Streamlit 配置文件(如果之前有创建过):
rm -rf ~/VideoLingo/.streamlit rm -rf ~/.streamlit这一步是博客文章《VideoLingo启动问题方案复盘》[2] 中提到的清理步骤,可以避免潜在的 Streamlit 配置问题。
2. 安装 Miniconda (如果尚未安装)
如果您的系统中尚未安装 Miniconda,请按照博客文章的指引进行安装。由于您之前的日志显示已经在使用 conda activate,这表明 Miniconda 可能已经安装。如果您不确定,可以跳过此步骤,直接进行环境创建。
-
下载 Miniconda 安装脚本:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -
运行安装脚本:
bash Miniconda3-latest-Linux-x86_64.sh在安装过程中,请根据提示输入
yes接受许可协议,并确认安装路径(通常默认即可)。 -
初始化 Conda:
conda init然后关闭并重新打开终端,使 Conda 命令生效。
3. 安装系统级依赖
VideoLingo 依赖于一些系统级的多媒体处理库。请确保这些库已安装。
-
更新 apt 包列表:
sudo apt-get update -
安装必要的系统库:
sudo apt-get install -y \ pkg-config \ libavformat-dev \ libavcodec-dev \ libavdevice-dev \ libavutil-dev \ libswscale-dev \ libresample-dev \ libavfilter-dev这些库是
PyAV等 Python 库正常工作所必需的,它们提供了音视频编解码和处理功能。
4. 创建并安装 VideoLingo Python 环境
这一步将创建一个独立的 Conda 环境,并安装 VideoLingo 及其所有 Python 依赖。
-
创建 Conda 环境:
conda create -n videolingo python=3.10.0 -y这将创建一个名为
videolingo的新环境,并安装 Python 3.10.0。 -
激活新环境:
conda activate videolingo -
进入 VideoLingo 项目目录:
cd ~/VideoLingo(请确保您当前终端的工作目录是
VideoLingo项目的根目录) -
安装 VideoLingo 及其 Python 依赖:
python install.pyinstall.py脚本通常会负责安装requirements.txt中列出的所有 Python 包,包括之前缺失的json_repair。
5. 启动 VideoLingo
完成所有安装步骤后,您可以尝试启动 Streamlit 应用程序。
-
确保在
videolingo环境中:conda activate videolingo -
进入
VideoLingo目录:cd ~/VideoLingo -
运行 Streamlit 应用程序:
streamlit run st.py --server.headless true--server.headless true参数用于在无头模式下运行 Streamlit,这在 WSL2 环境中可以避免启动时尝试调用图形界面浏览器的问题。
6. 解决 urllib3 的 NotOpenSSLWarning (可选)
如果您在启动时仍然看到 urllib3 的 NotOpenSSLWarning,这通常是一个警告而非致命错误。如果应用功能正常,您可以选择忽略它。如果需要抑制警告,可以在 st.py 或其他入口文件的顶部添加:
import warnings
from urllib3.exceptions import NotOpenSSLWarning
warnings.filterwarnings("ignore", category=NotOpenSSLWarning)
参考文献
[1] VideoLingo+IndexTTS2 - inheart: https://inheart.com.cn/archives/VLIT2
[2] VideoLingo启动问题方案复盘 - inheart: https://inheart.com.cn/archives/83532a8b-e285-4e4e-a185-71547971b792