You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python开发的YouTube批量下载工具转exe后Download按钮失效求助

解决方案:PyInstaller打包pytube工具后Download按钮无响应的问题

针对你遇到的re.error: nothing to repeat at position 2错误,这是pytube处理YouTube签名时的正则表达式匹配问题,结合打包场景,可按以下步骤解决:

  • 升级pytube到最新版本
    旧版本pytube的cipher模块正则表达式无法适配YouTube最新的签名逻辑,打包后触发正则编译错误。执行命令更新:

    pip install --upgrade pytube
    

    更新后重新测试.py脚本,确认下载功能正常后再打包。

  • 手动修复pytube的cipher.py正则(若升级后仍报错)
    找到本地pytube安装目录下的cipher.py文件,定位到初始化方法中编译正则的代码段(对应报错的pytube\cipher.py", line 30)。通常是正则表达式中存在重复符号(如*)前置无有效匹配内容的问题,将有问题的正则调整为更严谨的写法,例如:
    把类似r'\$*\w+\s*=\s*function\(\)'的正则修改为r'\$?\w+\s*=\s*function\(\)'(将*改为?,避免无内容可重复的情况)。修改后保存,重新打包。

  • 调整PyInstaller打包参数
    auto-py-to-exe基于PyInstaller,需确保pytube的核心模块被正确打包:

    1. 在auto-py-to-exe的「Advanced」选项中,添加--hidden-import pytube.cipher到「Additional Arguments」;
    2. 勾选「Console Window」选项,打包后运行.exe可查看实时错误输出,排查是否有其他依赖缺失;
    3. 若使用命令行打包,执行:
      pyinstaller --onefile --hidden-import pytube.cipher DonwloadYoutube.py
      
  • 改用文件夹模式打包
    若单文件(--onefile)模式仍存在资源加载问题,切换到「One Directory」模式打包(auto-py-to-exe中选择该选项)。此模式会将所有依赖文件完整复制到输出文件夹,避免单文件打包时的路径解析问题。

内容的提问来源于stack exchange,提问作者Potato 920

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:31:04