yatochka
@yatochka

При запуске файла не работает aiogram?

почему пишет: from aiogram import Bot, Dispatcher, types
ModuleNotFoundError: No module named 'aiogram'
хотя я всё установил. и даже перешёл на более старую версию, а именно 2.25.2
import asyncio
import aiogram.utils.markdown as md
from aiogram import Bot, Dispatcher, types
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram import Dispatcher
from aiogram.dispatcher.filters import Text
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.types import ParseMode

bot = Bot(token='TOKEN')
dp = Dispatcher(bot, storage=MemoryStorage())


class BuyingGold(StatesGroup):
    count = State()


@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    markup.add('Купить голду', 'Поддержка', 'Профиль', 'Отзывы')
    await message.answer('Привет! Я бот для продажи голды в Standoff 2.', reply_markup=markup)


@dp.message_handler(Text(equals='Купить голду'))
async def buy_gold(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    markup.add('Курс', 'Вывести', 'Купить', 'Посчитать', 'Главное меню')
    await message.answer('Выберите действие:', reply_markup=markup)


@dp.message_handler(Text(equals='Курс'))
async def show_course(message: types.Message):
    await message.answer('Курс: 1 голда = 0.62р.')


@dp.message_handler(Text(equals='Вывести'))
async def withdraw_gold(message: types.Message):
    await message.answer('Введите количество голды для вывода:')


@dp.message_handler(Text(equals='Главное меню'))
async def main_menu(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    markup.add('Купить голду', 'Поддержка', 'Профиль', 'Отзывы')
    await message.answer('Главное меню', reply_markup=markup)


@dp.message_handler(Text(equals='Купить'))
async def buy(message: types.Message):
    await BuyingGold.count.set()
    await message.answer('Введите количество голды для покупки:')


@dp.message_handler(state=BuyingGold.count)
async def calc_price(message: types.Message, state: FSMContext):
    count = int(message.text)
    price = count * 0.62
    await message.answer(md.text(
        md.text('Сумма к оплате:'),
        md.bold(str(price) + 'р.'),
        sep='\n'))
    await state.finish()
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
    markup.add('Главное меню')
    await message.answer('Оплата произведена. Голда будет зачислена на ваш аккаунт в ближайшее время.', reply_markup=markup)


@dp.message_handler(Text(equals='Посчитать'))
async def calc(message: types.Message):
    await message.answer('Введите количество голды для расчета стоимости:')


@dp.callback_query_handler()
async def callback_handler(query: types.CallbackQuery):
    if query.data == 'course':
        await query.message.answer('Курс: 1 голда = 0.62р.')
    elif query.data == 'withdraw':
        await query.message.answer('Введите количество голды для вывода:')
    elif query.data == 'buy':
        await query.message.answer('Введите количество голды для покупки:')


if __name__ == '__main__':
    asyncio.run(dp.skip_updates())
    asyncio.run(dp.start_polling())
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
1. ты установил aiogram в одно окружение, а запускаешь в другом
2. зачем вообще писать новых ботов на устаревшей версии aiogram?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы