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

Telegram Bot项目导入根目录bot变量出现ImportError求助

解决Telegram Bot模块导入错误问题

问题背景

项目结构:

bot.py 
handlers/ 
    create_ticket.py

在create_ticket.py中尝试用from ..bot import bot导入bot变量时,出现错误:

ImportError: attempted relative import beyond top-level package

可行解决方案

方案1:调整运行方式并添加包标识文件

  1. 在项目根目录和handlers目录下都创建空的__init__.py文件,让Python识别这是一个包结构:
bot.py 
__init__.py
handlers/ 
    __init__.py
    create_ticket.py
  1. 不要直接运行create_ticket.py,而是从项目根目录的上层目录,用模块方式启动:
python -m your_project_name.handlers.create_ticket

或者在bot.py中导入create_ticket模块,直接运行bot.py,此时相对导入会生效:

# bot.py中添加
from handlers.create_ticket import xxx

方案2:手动添加项目路径到sys.path

在create_ticket.py的最开头添加以下代码,把项目根目录加入Python的模块搜索路径,之后就可以直接导入bot:

import sys
import os

# 获取项目根目录路径并添加到sys.path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from bot import bot

方案3:使用绝对导入

如果你的项目根目录有明确的名称(比如telegram_bot),可以直接用绝对导入:

from telegram_bot.bot import bot

需要确保项目根目录在Python的sys.path中,或者用pip install -e .把项目安装为可编辑包,这样Python就能识别这个包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:02:09