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

Heroku部署Discord Bot遇Python十六进制字面量无效语法错误

问题分析与解决方案

问题根源

这个错误和youtube_dl间接相关,但本质是旧版本的Crypto类库(pycrypto或旧版pycryptodome)与Python3语法不兼容。Python3已经移除了整数末尾的L后缀(用来表示长整数),而你用到的旧版Crypto库代码里还保留了0xffffffffL这种写法,导致触发SyntaxError。youtube_dl的依赖链里可能引入了这个旧版库。

解决步骤

  • 替换/升级Crypto库:在你的requirements.txt里直接指定使用pycryptodome>=3.10.1(pycryptodome是pycrypto的官方替代,已修复Python3语法问题)。如果之前依赖里写了pycrypto,直接删掉换成这个。
  • 替换youtube_dl为yt-dlp:youtube_dl已经停止维护,很多依赖问题没更新。改用yt-dlp(它是youtube_dl的活跃分支),在requirements.txt里写yt-dlp,代码里把导入youtube_dl改成import yt_dlp as youtube_dl即可,用法基本一致,还能避免很多兼容性坑。
  • 清理Heroku缓存:旧依赖可能被缓存,执行命令heroku repo:purge_cache -a 你的应用名称,然后重新部署,确保新的依赖包被安装。
  • 固定Python版本:在项目根目录创建runtime.txt,写入比如python-3.9.16,避免Heroku自动使用过新或过旧的Python版本,保证依赖兼容。

内容的提问来源于stack exchange,提问作者Rockzy 77

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:45:25