分类 python相关 下的文章

一、解决系统yum源的问题

CentOS 7 已于 2024 年 6 月 30 日正式停止维护(EOL)。

CentOS 官方随后关闭了 mirrorlist.centos.org 镜像列表服务器。目前系统中的默认 .repo 配置文件(包含基础源、SCL 扩展源等)因无法连接到官方镜像列表而直接抛出 502 Bad Gateway 错误。

🛠️ 解决方案
要解决此问题,需要将系统的 YUM 源全部替换为归档源(CentOS Vault Mirror)。请在终端中按顺序执行以下命令:

  1. 备份现有的 repo 配置文件
    Bash
    sudo mkdir -p /etc/yum.repos.d/backup
    sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
  2. 重新下载并配置 Vault 镜像源
    方案 A:国内服务器(推荐,速度更快)
    直接使用阿里云的 CentOS 7 归档镜像源(同时修复基础源与截图报错的 SCLo 源):

Bash

1. 下载基础源 CentOS-Base.repo

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2. 将基础源中的路径调整为 vault 归档路径

sudo sed -i -e 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g' /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i -e 's/mirrors.aliyun.com/centos/mirrors.aliyun.com/centos-vault/g' /etc/yum.repos.d/CentOS-Base.repo

3. 下载并修复 SCLo 源(彻底消除 centos-sclo-rh 报错)

sudo curl -o /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo https://mirrors.aliyun.com/repo/Centos-7-SCLo-rh.repo
sudo curl -o /etc/yum.repos.d/CentOS-SCLo-scl.repo https://mirrors.aliyun.com/repo/Centos-7-SCLo-scl.repo
sudo sed -i 's/mirrors.aliyun.com/centos/mirrors.aliyun.com/centos-vault/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
sudo sed -i 's/mirrors.aliyun.com/centos/mirrors.aliyun.com/centos-vault/g' /etc/yum.

这里会报错,按下面修改

报错信息 File contains no section headers 并且文件第一行为 '<!DOCTYPE html>\n',说明上一步在使用 curl 下载 .repo 配置文件时,请求的 URL 链接返回了一个 404 网页或错误页面。

curl 将返回的 HTML 网页源码保存成了 .repo 文件,而 yum 无法在 HTML 代码中识别出形如 [repo-id] 的配置节点标题,因此抛出了格式异常。

解决方法
直接删除该损坏的文件,并手动将正确的 SCL 归档源配置写入文件中:

  1. 删除损坏的 .repo 文件
    Bash
    sudo rm -f /etc/yum.repos.d/CentOS-SCLo-scl*.repo
  2. 直接生成正确的 SCL 镜像源配置文件
    复制以下命令在终端中运行,直接写入包含正确的 Vault 归档路径配置:

Bash

写入 CentOS-SCLo-scl-rh.repo

sudo cat << 'EOF' > /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/x86_64/rh/
gpgcheck=0
enabled=1
EOF

写入 CentOS-SCLo-scl.repo

sudo cat << 'EOF' > /etc/yum.repos.d/CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/x86_64/sclo/
gpgcheck=0
enabled=1
EOF

还会报错,按下面修改

YUM 配置文件中的变量 $releasever 在 CentOS 7 下会自动替换为数字 7。但在阿里云镜像站的 centos-vault(归档库)中,CentOS 7 的实际目录名称是具体的终极版本号 7.9.2009,并没有 /centos-vault/7/ 这个路径,因此服务器直接返回了 404 Not Found。

🛠️ 解决方案
直接跳过变量替换,将 CentOS-Base.repo 中的路径硬编码指定为归档路径 7.9.2009。

  1. 重新写入正确的 CentOS 基础归档源
    请在终端中复制并运行以下命令,覆盖 /etc/yum.repos.d/CentOS-Base.repo:

Bash
sudo cat << 'EOF' > /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-7.9.2009 - Base
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[updates]
name=CentOS-7.9.2009 - Updates
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[extras]
name=CentOS-7.9.2009 - Extras
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[centosplus]
name=CentOS-7.9.2009 - Plus
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF

  1. 修复 EPEL 扩展源(从截图看系统启用了 EPEL)
    EPEL 7 同样已经进入 EOL 归档状态,如果不更新 EPEL 配置,后续也会触发 404。运行以下命令更新 EPEL 归档源:

Bash
sudo cat << 'EOF' > /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=https://mirrors.aliyun.com/epel-archive/7/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
EOF

  1. 清理并重构 YUM 缓存
    执行以下命令,完成缓存刷新:

Bash
sudo yum clean all
sudo yum makecache
提示 Metadata Cache Created 后,YUM 源即恢复正常使用。

二、安装python3

通过 EPEL 或 SCL 源快速安装(省时省力)
如果对 Python 版本没有极高要求,可以通过包管理器直接安装官方编译好的软件包。

方式 A:通过 EPEL 源安装 Python 3.6
Bash

1. 安装 EPEL 源

sudo yum install -y epel-release

2. 安装 Python 3 和 pip

sudo yum install -y python3 python3-pip

3. 验证

python3 --version

通过该方法安装的python的卸载方法

如果是通过 EPEL 源安装的 Python 3.6(yum install python3 python3-pip),卸载方式如下(适用于 CentOS/RHEL 7 系列等):

  1. 查看当前安装的 Python 包

先确认包名:

rpm -qa | grep python3

通常会看到类似:

python3-3.6.xxxxx.el7.x86_64
python3-libs-3.6.xxxxx.el7.x86_64
python3-pip-9.xxxxx.el7.noarch
python3-setuptools-...

  1. 卸载 Python 3 和 pip

执行:

sudo yum remove -y python3 python3-pip

如果提示依赖关系,也可以直接卸载相关包:

sudo yum remove -y python3*

  1. 删除 EPEL 源(如果不再需要)

卸载 EPEL:

sudo yum remove -y epel-release

或者:

sudo rpm -e epel-release

  1. 清理缓存
    sudo yum clean all
  2. 验证卸载

检查:

python3 --version

正常应该显示:

-bash: python3: command not found

检查 pip:

pip3 --version

应该也是:

-bash: pip3: command not found
注意

如果这是 CentOS 7 系统自带环境,不要删除:

python

因为 CentOS 7 的系统工具(如 yum)依赖 Python 2.7。

不要执行:

yum remove python

否则可能导致 yum 损坏。

如果你的目标是清理旧 Python 3.6,然后安装 Python 3.9/3.10/3.11,建议只卸载 python3 和 python3-pip,保留 EPEL 源。

方式 B:通过 SCL (Software Collections) 安装更高版本(如 Python 3.8)
SCL 允许在不破坏系统原有环境的前提下使用新版软件:

Bash

1. 安装 SCL 源

sudo yum install -y centos-release-scl

2. 安装 Python 3.8

sudo yum install -y rh-python38

3. 启用 Python 3.8 环境(仅在当前 Shell 终端生效)

scl enable rh-python38 bash

4. 验证

python --version

通过该方法安装的python的卸载

如果是通过 SCL(Software Collections)安装的 Python 3.8(rh-python38),卸载方式如下。

适用于 CentOS 7 / RHEL 7 使用 centos-release-scl 或 SCL 仓库的情况。

  1. 查看已安装的 SCL Python 包

先确认安装情况:

rpm -qa | grep rh-python38

一般会看到:

rh-python38-3.8.xxxxx.el7.x86_64
rh-python38-python-3.8.xxxxx.el7.x86_64
rh-python38-python-libs-...
rh-python38-python-pip-...
rh-python38-python-setuptools-...

  1. 卸载 Python 3.8

执行:

sudo yum remove -y rh-python38*

或者:

sudo yum erase -y rh-python38*

这会删除:

Python 3.8 主程序
pip
setuptools
标准库
相关依赖包

  1. 卸载 SCL 仓库(可选)

如果以后不再使用 SCL:

sudo yum remove -y centos-release-scl

如果安装了 SCL-utils:

sudo yum remove -y scl-utils

  1. 清理 yum 缓存
    sudo yum clean all
  2. 删除用户环境配置(如果配置过)

如果之前执行过:

scl enable rh-python38 bash

它只影响当前 Shell,不会永久生效。

但如果你添加过:

source /opt/rh/rh-python38/enable

例如在:

~/.bashrc
~/.bash_profile
/etc/profile

里面,需要删除:

source /opt/rh/rh-python38/enable

然后重新加载:

source ~/.bashrc

  1. 验证卸载

检查:

python --version

如果系统没有其他 Python:

-bash: python: command not found

检查:

scl -l

正常不会再显示:

rh-python38
注意事项

不要删除系统 Python:

python-2.7

CentOS 7 的:

yum
firewalld
系统管理脚本

依赖 Python 2.7。

不要执行:

yum remove python

否则可能导致 yum 无法使用。

如果你的目标是彻底清理所有第三方 Python(EPEL Python3 + SCL Python3.8)并恢复 CentOS 默认 Python 环境,可以执行:

sudo yum remove -y python3* rh-python38*
sudo yum remove -y centos-release-scl epel-release
sudo yum clean all

然后确认:

python --version
yum --version

都正常即可。

最佳实践建议

统一使用 python3 和 pip3 命令:在编写脚本、运行程序或安装第三方包时,显式指定 python3 script.py 或 pip3 install ,杜绝使用 python 混淆版本。

使用虚拟环境(Virtualenv):为具体的 Python 项目创建独立的环境,避免污染全局环境:

Bash
python3 -m venv my_env
source my_env/bin/activate
🚑 补充救急:如果误改 /usr/bin/python 导致 yum 报错怎么办?
如果你此前不小心替换了系统的 /usr/bin/python 软链接,导致运行 yum 时出现类似 SyntaxError: invalid syntax 的报错,请按以下步骤修复:

将软链接重新指回 Python 2.7:

Bash
sudo ln -sf /usr/bin/python2.7 /usr/bin/python
如果修改了配置文件,可以手动修正 yum 的解释器路径:
修改 /usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 文件的第一行,确保第一行为:

Bash

!/usr/bin/python2.7

1、创建c:\selenium\AutomationProfile目录

2、桌面创建谷歌浏览器的快捷方式名称为webdriver
目标为:"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="c:\selenium\AutomationProfile"
3、双击启动该浏览器,应该会在c:\selenium\AutomationProfile自动创建配置文件

在本地搭建一个生成“数字人”(通常指可以说话、动嘴、甚至有表情的虚拟人物视频)的项目,主要涉及到“会说话的头像生成”(Talking Face Generation)技术。

最常见和成熟的本地开源方案是基于 深度学习模型,如 Wav2Lip 及其衍生项目。

以下是本地搭建一个基本数字人项目的通用步骤和所需的关键技术栈:

方案:基于 Wav2Lip 或类似项目

Wav2Lip 是一个非常流行的开源项目,它能将任意人脸视频和一段音频结合,生成一个嘴型与音频同步的新视频。

关键技术栈
编程语言: Python (必需)

深度学习框架: PyTorch 或 TensorFlow

环境管理: Conda 或 venv (强烈推荐)

硬件要求: 最好有一块 NVIDIA 独立显卡 (GPU),因为深度学习模型的推理速度在 GPU 上会快很多。

本地搭建步骤

步骤 1: 准备开发环境

安装 Python: 确保安装了 Python 3.6 - 3.9 版本(具体版本取决于你选择的开源项目要求)。

安装 Conda 或创建虚拟环境:

Bash

使用 Conda 创建环境(推荐)
conda create -n digital_human python=3.8
conda activate digital_human
安装 PyTorch/TensorFlow: 根据你的 GPU 类型和操作系统,安装对应版本的深度学习框架,并确保它能使用 GPU (如果需要)。

步骤 2: 下载开源项目代码

克隆代码仓库: 以 Wav2Lip 为例,你需要找到它的 GitHub 仓库并克隆到本地。

Bash

git clone [项目GitHub地址]
cd [项目文件夹]
安装依赖: 进入项目文件夹,安装 requirements.txt 中列出的所有依赖库。

Bash

pip install -r requirements.txt

步骤 3: 下载预训练模型权重

下载模型文件: 深度学习项目通常需要预训练的权重文件(.pth 或 .pt),这些文件通常很大。项目 README 中会提供下载链接(如 Google Drive 或 Baidu Netdisk)。

放置文件: 将下载的权重文件(例如 wav2lip.pth)放置到项目指定的目录下(通常是 checkpoints 或 models 文件夹)。

步骤 4: 准备素材

你需要准备两样东西:

视频 (Video): 包含目标数字人脸部的视频文件(例如 input_face.mp4)。

音频 (Audio): 包含你希望数字人说的内容的音频文件(例如 input_audio.wav 或 input_audio.mp3)。

步骤 5: 运行生成脚本

运行推理命令: 项目通常会提供一个 Python 脚本(例如 inference.py 或 generate.py)来执行生成任务。你需要传递输入视频、音频和输出文件的路径。

一个典型的命令可能如下所示:

Bash

python inference.py --face "path/to/input_face.mp4" --audio "path/to/input_audio.wav" --outfile "path/to/output_video.mp4"
等待生成: 程序会加载模型,处理视频帧,并生成嘴型同步的新视频文件。

其他进阶方向(非 Wav2Lip)

如果你想生成更复杂的数字人(例如可以控制头部姿态、肢体动作或全身模型),你可能需要探索以下技术方向:

全身数字人: 涉及 3D 建模、骨骼绑定(Rigging)和动作捕捉(Motion Capture)数据。通常需要使用 Blender、Unity 或 Unreal Engine 等专业工具。

高精度肖像生成: 结合 StyleGAN 或 Stable Diffusion 等扩散模型生成逼真的静态人脸,再用 Wav2Lip 等技术使其说话。

NeRF (神经辐射场): 用于生成特定场景下的高逼真度 3D 模型和视图,但计算资源要求极高。

一、到github上git下项目并用pycharm打开

网址:https://github.com/ihmily/DouyinLiveRecorder

二、windows安装ffmpeg

网址:https://www.gyan.dev/ffmpeg/builds/

安装并设置ffmpeg

要在 Windows 上安装 FFmpeg,您不需要运行传统的安装程序,只需下载预编译好的文件,然后将其路径添加到系统的环境变量 (PATH) 中即可。

以下是详细的步骤:

第一步:下载 FFmpeg 文件
访问下载页面: 访问 FFmpeg 官方推荐的 Windows 预编译版本下载网站。

推荐访问 Gyan.dev FFMPEG Builds 页面。

选择版本: 在该页面找到 "release builds"(发布版本)部分。

推荐下载: 找到 ffmpeg-release-full.7z 或 ffmpeg-release-essentials.7z(Essentials 版本已经足够日常使用)。

注意: 文件格式是 .7z,您可能需要安装 7-Zip 或其他解压工具来解压它。

下载并解压:

下载 .7z 文件。

使用解压软件将其解压到一个您容易找到且不会随意删除的位置,例如:C:\FFmpeg。

解压后,文件夹结构通常是 FFmpeg\bin。请记住 bin 文件夹的完整路径。

示例路径: C:\FFmpeg\bin

第二步:配置环境变量 (PATH)
这一步是为了让您可以在任何命令行窗口(CMD 或 PowerShell)中直接运行 ffmpeg 命令,而不需要每次都切换到其所在目录。

打开环境变量设置:

在 Windows 搜索栏中输入 “环境变量”。

选择 “编辑系统环境变量”(或“编辑账户的环境变量”)。

在弹出的“系统属性”窗口中,点击右下角的 “环境变量” 按钮。

编辑 Path 变量:

在“用户变量”(User variables for [您的用户名])或“系统变量”(System variables)框中,找到并选中名为 Path 的变量。

点击 “编辑”。

添加 FFmpeg 路径:

在弹出的“编辑环境变量”窗口中,点击 “新建”。

粘贴您在第一步中记住的 bin 文件夹的完整路径。

例如: C:\FFmpeg\bin

连续点击 “确定” 关闭所有窗口以保存更改。

第三步:验证安装
打开命令提示符 (CMD):

按下 Win + R,输入 cmd,然后按 Enter 键打开命令行窗口。

重要: 确保您打开的是一个新的 CMD 窗口,以便系统能够加载新的环境变量。

运行测试命令:

在命令行中输入:

Bash

ffmpeg -version
检查结果:

如果安装成功,命令行窗口将显示 FFmpeg 的版本信息、编译选项等详细内容。

如果显示 “‘ffmpeg’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”,则表示 PATH 路径未设置正确,请返回第二步检查路径是否准确。

完成以上步骤后,您就可以在 Windows 上通过命令行使用 FFmpeg 强大的音视频处理功能了

三、设置并运行程序

1、在项目中找到 config 文件夹内的 URL_config.ini 中添加录制直播间地址,一行一个直播间地址。如果要自定义配置录制,可以修改config.ini 文件,推荐将录制格式修改为ts。
2、用fiddler抓包工具抓取抖音的coockie中的字段ttwid。ctrl+f搜索即可获得,并修改到config.ini中
3、运行main.py即可录制抖音直播的视频了。

yCharm 与 GitHub 的同步是基于 Git 版本控制系统 的。同步操作主要分为两个部分:

从 GitHub 获取(下载)项目

将本地更改推送(上传)到 GitHub

以下是详细的步骤和操作:

第一步:克隆(Clone)项目 - 从 GitHub 下载

如果你是第一次在 PyCharm 中打开 GitHub 上的项目,你需要“克隆”它。

打开 PyCharm 欢迎界面:

    如果你没有打开任何项目,在欢迎屏幕上选择 Get from VCS(从版本控制系统获取)。

    如果你已经在一个项目中,选择主菜单栏的 Git | Clone... (或 VCS | Get from Version Control...)。

选择 GitHub:

    在弹出的对话框左侧选择 GitHub。

登录 GitHub:

    如果你还没有登录,PyCharm 会要求你登录。通常会弹出浏览器窗口,让你授权 PyCharm 访问你的 GitHub 账户。

选择仓库和目录:

    登录后,从仓库列表中选择你想要克隆的项目。

    设定一个本地存储的 Directory(目录)。

克隆:

    点击 Clone。PyCharm 会将整个项目仓库下载到你的本地,并打开这个项目。

第二步:同步更新(日常开发)

在日常开发中,同步操作主要包括 拉取(Pull) 和 推送(Push)。

  1. 从 GitHub 拉取(Pull)最新更改

当你开始工作前,或者想获取别人提交的新代码时,需要执行拉取操作。

快捷键: 按下 Ctrl+T(在 macOS 上是 Cmd+T)。

菜单操作: 选择主菜单栏的 Git | Pull... (拉取)。

版本控制面板: 点击 PyCharm 窗口右上方或底部状态栏的更新图标(一个向下的蓝色箭头)。

PyCharm 会自动从远程仓库下载最新的提交并合并到你当前的分支。

  1. 推送(Push)你的本地更改到 GitHub

当你完成了本地的代码修改并提交(Commit)后,需要将这些更改推送到 GitHub。

A. 提交 (Commit) 本地更改:

打开 Commit 工具窗口:

    方法一: 点击左侧垂直工具栏的 Commit 按钮(或按 Alt+0)。

    方法二: 在主菜单中选择 Git | Commit... (或 Ctrl+K)。

选择文件并填写信息:

    在 Commit 窗口中,勾选你修改过的文件。

    填写 Commit Message(提交信息,描述你做了哪些修改)。

执行 Commit:

    点击 Commit 按钮。这会将更改保存到你的本地 Git 历史记录中。

B. 推送 (Push) 到 GitHub:

快捷键: 按下 Ctrl+Shift+K(在 macOS 上是 Cmd+Shift+K)。

菜单操作: 选择主菜单栏的 Git | Push... (推送)。

版本控制面板: 点击 PyCharm 窗口右上方或底部状态栏的推送图标(一个向上的绿色箭头)。

在弹出的对话框中确认要推送的分支和提交,然后点击 Push 按钮,你的本地更改就会被上传到 GitHub 仓库。

💡 实用提示

状态栏指示: PyCharm 窗口的右下角状态栏通常会显示你当前的分支信息和未拉取(Incoming) / 未推送(Outgoing) 的提交数量,方便你随时了解同步状态。

更新项目(Update Project): 在主菜单中选择 Git | Update Project...(或快捷键 Ctrl+T / Cmd+T)。这个操作通常会执行一次 Fetch,然后 Pull 并合并你的分支。

Git 分支操作: 在 PyCharm 的右下角有一个分支名称(如 master 或 main),点击它可以快速进行切换分支、创建新分支、合并等操作。