首页 > 解决方案 > 如何重定向python导入?

问题描述

我正在使用 Discord.py 的 2 个版本,一个支持自我机器人的修改版本和原始版本。两者都使用相同的包名,discord。discord_py我在文件夹中有为自我机器人修改过的 discord.py

root
├─ discord_py
│  ├─ __init__.py
│  └─ discord
│     ├─ __init__.py
│
└─ main.py

然而,这给了我导入错误,因为内部discordimport discord导致与原始的、未修改的 sys 模块发生冲突discord

是否有将import discord文件discord_py夹中的重定向到自身的初始化技巧?

标签: pythonpython-3.x

解决方案


如果您在 linux 下,请将 PYTHONPATH 环境变量设置为您要导入的 discord.py 的位置。

并确保在运行程序之前将其导出。不同的 ide 将允许您执行此操作的方法,但最坏的情况是您可以从 shell 设置它,导出它,然后手动运行您的 ide。

您还可以使用 venv,它在 PyCharm 中很简单,并手动指定所有站点包的位置。

据我所知,PYTHON_PATH 的工作方式与 PATH 类似,因为它按顺序搜索定义的位置,但不是这样,它首先搜索这些位置,然后是您的环境默认值。

请参阅链接PYTHONPATH 教程


推荐阅读