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

如何重定向Python的import导入,解决Discord.py多版本包名冲突

Discord.py多版本导入冲突解决方案

可以通过__init__.py配合路径优先级调整实现需求,以下是可行操作方案:

方案1:调整导入路径优先级(无需修改修改版Discord.py源码)

操作步骤:

  1. 编辑discord_py/__init__.py,添加以下代码:
import sys
import os
# 将当前discord_py目录加入导入路径的最高优先级
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
  1. 在main.py中按如下顺序导入:
# 先导入discord_py触发路径调整
import discord_py
# 此时导入的discord为discord_py下的修改版,优先级高于全局安装的原版
import discord

这个方案的原理是Python导入包时会按sys.path列表的顺序依次查找匹配的包,把修改版所在目录加到列表最前面就会优先被检索到。

方案2:修改修改版内部导入逻辑(无全局路径修改副作用)

如果不想全局调整sys.path,可以直接修改修改版Discord.py内部的导入语句,把所有绝对导入的import discord相关语句替换为相对导入:

  • 原语句示例:import discord.utils、from discord import Client
  • 替换后:from . import utils、from . import Client
    修改后修改版内部的导入会直接关联同目录下的代码,不会触发全局包检索,自然不会和原版冲突。

注意事项

  • 如果需要同时使用两个版本的Discord.py,在导入完修改版后如果需要导入原版,需使用importlib.util手动指定原版的安装路径导入,避免被调整后的路径优先级影响
  • 不要将discord_py目录放入Python的全局site-packages目录,避免造成全局导入污染

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:24:00