Как установить нужную версию библиотеки aiogram в PyCharm?

У меня есть код для бота на Python, который должен проверять, подписан ли пользователь на определённый телеграм-канал. Код уже написан, но в части, где импортируются библиотеки, PyCharm подчеркивает `Executor`. Эта часть необходима для того, чтобы бот мог запуститься. Я предполагаю, что проблема может быть связана с версией Aiogram, которую нужно установить как aiogram2.25.2. Могу ли я получить помощь с этим? Ниже привожу код и ошибку, которую PyCharm выдает при попытке установить нужную версию Aiogram. 
<br/><br/>
```python
from aiogram import Bot, Dispatcher, executor, types 

TOKEN = 'Здесь токен моего бота' 

bot = Bot(token=TOKEN) 
dp = Dispatcher(bot) 

@dp.message_handler(commands='start') 
async def start(mes): 
    await mes.answer('Привет! Я бот, который проверит твою подписку на канал.') 
    await check_subscribe(mes) 

@dp.message_handler() 
async def check_subscribe(mes): 
    chat_id = 'айди канала на который нужна подписка' 
    user_channel_status = await bot.get_chat_member(chat_id=chat_id, user_id=mes.from_user.id) 

    if user_channel_status['status'] != 'left': 
        await mes.answer('Вы подписанны на канал, можете получать контент!') 
        await send_content(mes) 

    else: 
        markup = types.InlineKeyboardMarkup() 
        markup.add(types.InlineKeyboardButton('Подписаться', url='<a href="https://t.me/your_channel" rel="nofollow">https://t.me/your_channel</a>')) 
        
        await mes.answer('Для получения контента необходимо подписаться на канал!', reply_markup=markup) 
        await mes.answer('После подписки напишите любое сообщение для проверки') 

@dp.message_handler() 
async def send_content(mes):
# Дальнейший код
```
  • 30 сентября 2024 г. 16:43
Ответы на вопрос 2
Чтобы установить нужную версию библиотеки `aiogram` (в вашем случае `aiogram==2.25.2`) в PyCharm, вам нужно выполнить несколько шагов. Следуйте инструкциям:

1. **Откройте настройки проекта**:
   - Перейдите в меню `File` и выберите `Settings` (или просто нажмите `Ctrl + Alt + S`).
   - В открывшемся окне выберите `Project: <ваш_проект>`, затем `Python Interpreter`.

2. **Установка конкретной версии библиотеки**:
   - Убедитесь, что выбран правильный интерпретатор Python (если у вас несколько версий).
   - Нажмите на кнопку `+` (или `Add`) в правом верхнем углу окна "Python Interpreter".
   - В строке поиска введите `aiogram`.
   - Чтобы установить нужную версию, нажмите на стрелочку справа от имени библиотеки и выберите `Install Specific Version...`.
   - В поле `Version` введите `2.25.2` и нажмите `Install Package`.

3. **Использование терминала**:
   Вы также можете установить библиотеку через терминал, если предпочитаете. Откройте встроенный терминал в PyCharm (View -> Tool Windows -> Terminal) и выполните команду:

   ```bash
   pip install aiogram==2.25.2
   ```

4. **Проверьте установку**:
   После установки в списке установленных библиотек (в окне интерпретатора) должна появиться `aiogram` версии `2.25.2`.

5. **Проверьте импорт**:
   Убедитесь, что в вашем коде правильно импортируется `executor`. В версии `aiogram 2.x` `executor` импортируется именно как:

   ```python
   from aiogram import executor
   ```

   Если все установлено правильно, подчеркивания в коде должны исчезнуть.

6. **Запустите бота**:
   Не забудьте добавить в конце вашего скрипта вызов `executor.start_polling(dp)` для запуска вашего бота:

   ```python
   if __name__ == '__main__':
       executor.start_polling(dp, skip_updates=True)
   ```

Ваш обновленный код должен выглядеть примерно так:

```python
from aiogram import Bot, Dispatcher, executor, types

TOKEN = 'Здесь токен моего бота'

bot = Bot(token=TOKEN)
dp = Dispatcher(bot)

@dp.message_handler(commands='start')
async def start(mes):
    await mes.answer('Привет! Я бот, который проверит твою подписку на канал.')
    await check_subscribe(mes)

@dp.message_handler()
async def check_subscribe(mes):
    chat_id = 'айди канала на который нужна подписка'
    user_channel_status = await bot.get_chat_member(chat_id=chat_id, user_id=mes.from_user.id)

    if user_channel_status['status'] != 'left':
        await mes.answer('Вы подписанны на канал, можете получать контент!')
        await send_content(mes)

    else:
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Подписаться', url='https://t.me/your_channel'))
        
        await mes.answer('Для получения контента необходимо подписаться на канал!', reply_markup=markup)
        await mes.answer('После подписки напишите любое сообщение для проверки')

@dp.message_handler()
async def send_content(mes):
    # Дальнейший код

if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)
```

Теперь ваш бот должен работать корректно с указанной версией `aiogram`.
$ cd /d project
$ python -m venv venv
$ venv\Scripts\activate
$ pip install aiogram==2.25.2
$ pip install aiohttp==3.8.1

Либо, попробуйте версию aiohttp юолее старую:
$ pip install aiogram==2.25.2
$ pip install aiohttp==3.7.4
Похожие вопросы