@attlantisse

В чем ошибка Discord.py?

при желании разбить код на несколько файлов возникла ошибка. Я создал файл pictures, код ниже:
@bot.command()
async def pic(ctx):
    _rand = randint(1, 5)
    if _rand == 1:
        await ctx.send(file=discord.File("1.jpg"))
    if _rand == 2:
        await ctx.send(file=discord.File("2.jpg"))
    if _rand == 3:
        await ctx.send(file=discord.File("3.jpg"))
    if _rand == 4:
        await ctx.send(file=discord.File("4.jpg"))
    if _rand == 5:
        await ctx.send(file=discord.File("5.jpg"))

Далее испортивал его в свой проект:
import discord
import config
import pict
from discord.ext import commands
from random import randint

intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix=".", intents=intents)

Выдаёт ошибку, что имя bot не найдено
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Глобальная переменная bot, объявленная в твоём главном скрипте, не видна в импортируемых модулях.
Проще всего сделать так:
# pictures.py
def setup(bot):
    @bot.command()  # да, это вложенная функция.
    async def pic(ctx):
        pass  # тут код

    @bot.command()  # ещё одна, если надо
    async def something(ctx):
        pass  # тут код

# а это уже в main.py
import discord
from discord.ext import commands

import pictures

intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix=".", intents=intents)

pictures.setup(bot)  # вызов строго один раз!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 11:02
5000 руб./за проект
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект