Задать вопрос
  • Чем бэкапить файловую общую папку на Windows в 2025 году?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Чем бэкапить файловую общую папку на Windows в 2025 году?
    Тем же, чем и в 2024, и в 2023, и в 2020, и в 2015 (дальше продолжить тоже можно, но какие-то инструменты уже не в моде или устарели)
    Ответ написан
    Комментировать
  • Как пригласить другого эксперта?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Как "отменить" приглашение эксперту и пригласить другого?
    Никак. Это не предусмотрено
    Ответ написан
  • Как устроен вызов классов в Python?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Действительно, чёт не очень понятен вопрос. Это всё описывается примерно так:

    1. Когда вызывается класс, интерпретатор ищет __call__ в метаклассе этого класса. По умолчанию метакласс — type. Этот type.__call__ управляет процессом создания экземпляра. Если метакласс переопределен, его __call__ будет использоваться вместо type.__call__.
    2. type.__call__ вызывает __new__ класса
    3. Если класс не переопределил __new__ type.__call__ вызывает __init__ класса. Если переопределен и возвращает объект другого типа, __init__ не вызывается, если того же - вызывается

    Например, такой код
    class Test:
        def __new__(cls, *args, **kwargs):
            print("__new__")
            return super().__new__(cls)
    
        def __init__(self):
            print("__init__")
    
    test = Test()
    выведет
    __new__
    __init__

    А такой
    class Test:
        def __new__(cls, *args, **kwargs):
            print("__new__")
            return 'test'
    
        def __init__(self):
            print("__init__")
    
    test = Test()
    только __new__

    P. S. Ну а вообще вам полезно вот это почитать
    Ответ написан
  • Как побороть проблему при парсинге с помощью BeatifulSoup?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    У меня вывод выглядит так:
    spoiler
    [] 0 <class 'list'>
    ['', ' Нужно ли пить флеботоники при тромбозе глубоких вен? ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/nuzhno-li-pit-flebotoniki-pri-tromboze-glubokih-ven/', ' \n\nтромбы\n\n\nлекарства от варикоза\n\n\nпопулярные вопросы\n\n\nмифы о варикозе\n\n\n'] 6 <class 'list'>
    ['', ' Как болят артерии и вены? Подходы к лечению ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/kak-bolyat-arterii-i-veny-podhody-k-lecheniyu/', ' \n\nболезни сосудов\n\n\nболи в ногах\n\n\n'] 6 <class 'list'>
    ['', ' Профессиональные отеки нижних конечностей и методы их коррекции ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/professionalnye-oteki-nizhnih-konechnostey-i-metody-ih-korrektsii/', ' \n\nпрофилактика\n\n\nотеки\n\n\n'] 6 <class 'list'>
    ['', ' Как справиться с венозной болью? ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/kak-spravitsya-s-venoznoy-bolyu/', ' \n\nпопулярные вопросы\n\n\nболи в ногах\n\n\nлечение варикоза без операции\n\n\n'] 6 <class 'list'>
    ['', ' Самодиагностика тромбоза, попытка самолечения ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/samodiagnostika-tromboza-popytka-samolecheniya/', ' \n\nтромбы\n\n\n'] 6 <class 'list'>
    ['', ' Самая надежная и безболезненная операция на венах ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/samaya-nadezhnaya-i-bezboleznennaya-operatsiya-na-venah/', ' \n\nсовременная хирургия варикоза\n\n\n'] 6 <class 'list'>
    ['', ' Тромбоз: чулок/гольф/ничего? ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/tromboz-chulok-golf-nichego/', ' \n\nкомпрессионный трикотаж\n\n\nтромбы\n\n\n'] 6 <class 'list'>
    ['', ' Больные «внутренние вены» на ногах с избытком жировой клетчатки. ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/bolnye-vnutrennie-veny-na-nogah-s-izbytkom-zhirovoy-kletchatki/', ' \n\nболи в ногах\n\n\nлипедема\n\n\n'] 6 <class 'list'>
    ['', ' Опасно ли закрывать клеем вены? ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/opasno-li-zakryvat-kleem-veny/', ' \n\nмифы о варикозе\n\n\nспорт и болезни вен\n\n\n'] 6 <class 'list'>
    ['', ' Действительно эффективные упражнения при заболеваниях вен ', ' ✓ ', ' ✓  ', 'https://actual-phlebology.ru/afpatient/deystvitelno-effektivnye-uprazhneniya-pri-zabolevaniyah-ven/', ' \n\nпрофилактика\n\n\nмифы о варикозе\n\n\nспорт и болезни вен\n\n\n'] 6 <class 'list'>
    
    
    и т. д.
    Ничего не видете? Зато я вижу, что при первой итерации список у вас получается пустым: [] 0 <class 'list'> Это и вызывает ошибку
    Ответ написан
    Комментировать
  • Какой компилятор выбрать для указанной задачи?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    по крайней мере раньше, exe-шник требовал, чтобы на компьютере было установлено еще что-то (напр. та же студия такой же версии).

    установки каких-то дополнительных пакетов и сред на компьютер,
    Откуда вы это взяли? Чушь полнейшая. Максимум - несколько dll в придачу поставляется вместе с приложением, и всё (ну если вы, конечно, не программу управления полётами пишете).
    Совсем хорошо, если для этой среды не понадобится искать рабочий кряк.
    Ну уж это совсем ни в какие ворота не лезет. Какие еще кряки? Вы из 90-х что ли прилетели?

    На каком языке нравится, на таком и пишете. Где? Да где угодно. Универсальные среды - Visual Studio и Visual Studio Code. Ваш пользователь не будет о них знать и в помине, и ничего устанавливать ему не придётся
    Ответ написан
    3 комментария
  • Проблема с запуском собранного exe на путоне на windows 7. Помогетe пожалуйста?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Собирать на том же ПК где не работает или забыть про Windows 7

    P.S. Ну можно еще более старую версию python попробовать
    Ответ написан
    Комментировать
  • Хочу посмотреть реализацию функции в builtins.py, но там только докстринги по функциям. Как посмотреть реализацию?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Комментировать
  • Как хранить ключи в Python?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Использовать Android Keystore
    Ответ написан
    Комментировать
  • Почему не сохраняет данные в переменную в telebot?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    По-хорошему, вам надо озадачиться изучением такой вещи, как БД (база данных). Но если уж очень лень, то здесь как минимум нужен словарь.

    Что-то типа этого:
    Осторожно! Писать самому было лень, код сгенерирован нейросетью
    import telebot
    from telebot import types
    import time
    import works  # Предполагается, что works теперь словарь
    
    token = 'YOUR_TOKEN'
    bot = telebot.TeleBot(token)
    
    # Храним состояние и данные пользователей
    user_data = {}
    
    MAIN_MENU = 0
    FIRST_WORK_MENU = 1
    ADD_WORK_MENU = 2
    
    @bot.message_handler(commands=['start'])
    def start(message):
        user_id = message.from_user.id
        # Инициализация данных пользователя при старте
        if user_id not in user_data:
            user_data[user_id] = {
                'state': MAIN_MENU,
                'count_price': 0,
                'count_all': 0
            }
        
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        markup.add(" Главное меню", "ℹ️ Информация", "ℹ️️ начать подсчет зарплаты",
                   "ℹ️️ итог за месяц", "ℹ️ итог за все время")
        
        bot.send_message(message.chat.id, "Добро пожаловать! Выберите пункт меню:", reply_markup=markup)
    
    @bot.message_handler(content_types=['text'])
    def handle_text(message):
        user_id = message.from_user.id
        # Инициализируем данные, если пользователь новый
        if user_id not in user_data:
            user_data[user_id] = {
                'state': MAIN_MENU,
                'count_price': 0,
                'count_all': 0
            }
        
        current_user = user_data[user_id]
    
        if message.text == " Главное меню":
            # Код создания главного меню...
        
        elif message.text == "ℹ️️ начать подсчет зарплаты":
            # Код перехода в меню подсчета...
        
        elif message.text == "добавление выполненых работ":
            # Код меню добавления работ...
        
        elif message.text == "ℹ️️ итог за месяц":
            bot.send_message(message.chat.id, f'Сумма за месяц: {current_user["count_price"]} руб.')
        
        elif message.text == "ℹ️ итог за все время":
            bot.send_message(message.chat.id, f'Сумма за все время: {current_user["count_all"]} руб.')
        
        elif message.text == "обнуление месяца/сохранение итогов":
            current_user['count_all'] += current_user['count_price']
            current_user['count_price'] = 0
            bot.send_message(message.chat.id, 
                           f'Месяц обнулен. Текущий месяц: 0 руб.\n'
                           f'Итог за все время: {current_user["count_all"]} руб.')
        
        elif message.text in works:  # Предполагается, что works - это словарь
            price = works[message.text]
            current_user['count_price'] += price
            bot.send_message(message.chat.id,
                           f'{message.text}: {price} руб.\n'
                           f'Итог за месяц: {current_user["count_price"]} руб.')
    
    bot.polling(none_stop=True)
    Ответ написан
    Комментировать
  • Крашится Kivy приложение на Android. Что делать?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    1. В коде у вас kivy.require('2.0.0'), а в конфиге kivy==2.1.0. Вас это не смущает?
    2. Удалите ваш конфиг, создайте новый через buildozer init и ничего не меняя запустите сборку. Потом попробуйте запустить.
    3. Если предыдущие шаги не помогут, то вам надо осваивать adb и buildozer -v android debug deploy run logcat Гугль и доки вам в помощь

    P. S.
    spoiler
    @Dmitriy_Semenov,
    1. Вместо
    if platform == 'android':
        storage_path = '/sdcard/fittrackpro'
    else:
        storage_path = os.path.dirname(os.path.abspath(__file__))

    Используйте
    storage_path = App.get_running_app().user_data_dir
    2. Удалите Window.size = (360, 640)
    3. Вместо
    if not os.path.exists(storage_path):
        os.makedirs(storage_path)

    Используйте
    if not os.path.exists(storage_path):
        os.makedirs(storage_path, exist_ok=True)
    (или вообще уберите, и так должно работать)
    4. После импортов добавьте
    try:
        from android.permissions import request_permissions, Permission
    
        if platform == 'android':
            request_permissions([
            Permission.WRITE_EXTERNAL_STORAGE,
            Permission.READ_EXTERNAL_STORAGE,
            Permission.INTERNET
            ])
    except: pass


    Ну и конечно использовать print в графическом приложении - это глупость. Пользователь всё равно ничего не увидит
    Ответ написан
  • Как узнать дату регистрации в вк с помощью питона?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Никак
    Ответ написан
    Комментировать
  • PyInstaller как открыть GUI?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Соглашусь с dim5x Но может быть вы имеете в виду параметр сборки проекта? Тогда это --windowed
    Ответ написан
    Комментировать
  • Как мне отписаться от профильного хаба?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Ответ написан
    Комментировать
  • Какой антивирус для Линукс сейчас использовать в РФ?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Dr.Web, Kaspersky
    Ответ написан
    Комментировать
  • Как сформировать десктопное приложение на питоне?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    PyInstaller для новичков самое то.
    1. pip install pyinstaller
    2. pyinstaller -F /path/to/yourscript.py
    3. Profit
    Ответ написан
    2 комментария
  • Можно ли стать бекэндером без фронтенда?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Конечно можно. Бэкенд+фронтенд это уже фуллстэк. Но самые примитивные и базовые знания лучше все-таки иметь.
    Ответ написан
    Комментировать
  • Книга по развитию в IT?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Программист-прагматик. Эндрю Хант
    Ответ написан
    Комментировать
  • Ошибка при нажатии кнопки "Next", (Instagram, Selenium) Как исправить?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Дебаг, дебаг и ещё раз дебаг
    Ответ написан
    Комментировать
  • Почему self интерпретируется как None в ходе инициализации __init__?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Это артефакт отладки, с самим объектом ничего не происходит. Строка "None" появляется в выводе, но это не означает, что сам объект становится None
    Ответ написан
    1 комментарий
  • Как исправить ошибку тг бота?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    YouTube ужесточил политику в отношении пользователей, которые скачивают видео "без разрешения". Самый правильный вариант - это генерация poToken, но это достаточно трудоёмкое занятие. Сейчас разработчик и команда неравнодушных пользователей (в числе которых и я) думают над решением этой проблемы.
    Пока нашли такое решение-костыль:
    1. Заходите в папку где хранится pytubefix. Обычно это
    C:\Users\<User>\AppData\Local\Programs\Python<version>\Lib\site-packages\pytubefix

    2. Идете в __main__.py
    3. Там находите функцию check_availability и убираете (просто удаляете) вот этот кусок кода:
    elif reason == (
        'Sign in to confirm you’re not a bot'
    ):
        raise exceptions.BotDetection(video_id=self.video_id)

    Все должно заработать
    Ответ написан
    2 комментария