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

discord.py主文件导入外部文件函数后机器人无法登录问题咨询

问题根因

你遇到的导入后机器人无法登录的问题,和导入语法本身无关,问题出在TwitterSentiments.py的代码结构上:

  • 该文件中的Tweepy身份认证、API实例化代码属于顶层全局代码,Python导入模块时会优先执行所有顶层非函数/类定义的代码,完成Tweepy的网络认证请求后才会继续执行主文件后续的Discord机器人初始化、登录逻辑
  • 如果Tweepy认证因网络问题阻塞、请求失败报错,会直接中断主文件运行,导致机器人无法启动
修复步骤
  1. 调整TwitterSentiments.py的代码结构,把网络请求相关的逻辑封装到函数内部,避免导入时直接执行:
import tweepy
from textblob import TextBlob

# 密钥仅做变量定义,不会触发网络请求
consumer_key = 'SECRET'
consumer_secret = 'SECRET'
access_token = 'SECRET'
access_token_secret = 'SECRET'

def find_tweets(ticker_symbol):
    # 认证逻辑移到函数内部,只有调用find_tweets时才会执行
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = tweepy.API(auth)
    
    public_tweets = api.search(ticker_symbol)
    sentiment_average_list = []

    for tweet in public_tweets:
        analysis = TextBlob(tweet.text)
        sentiment_average_list.append(analysis.sentiment.polarity)

    return sentiment_average_list
  1. 保留你原来的导入写法即可,两个文件同目录下import TwitterSentiments或者from TwitterSentiments import find_tweets都可以正常使用
  2. 如果调整后仍有问题,可以在主文件导入语句前添加路径校验代码,确认运行时的工作目录正确:
import os
import sys
# 打印当前工作目录和Python导入路径,确认包含两个文件所在的文件夹
print("当前工作目录:", os.getcwd())
print("Python导入路径:", sys.path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:30:01