• Почему возникает ошибка AttributeError: 'NoneType' object has no attribute 'write'?

    @Dementor
    программист, архитектор, аналитик
    1. При чем тут Java?
    2. Зачем тут HTML и CSS?
    3. На днях тоже при отладке питоновского скрипта получил ошибку AttributeError: 'NoneType' object has no attribute - не поверишь, у меня функция вместо нужного объекта возвращала NoneType и у него естественно не было никаких атрибутов, что при попытке обратится к ним вызывало ошибку. Помогает проверка типа или Try-Except

    Загуглил, что eel - это электрон. Тогда с описания ошибки очевидно, что при запуске в пайчарме (или где там отлаживаете) скрипт и веб-файлы находятся в одной директории, а после компиляции он их не видит, что говорит о разних рабочих директориях. Или передавайте на вход исполняемому файлу рабочую директорию, или указывайте полный путь, а не "????/main.html"
    Ответ написан
    2 комментария
  • Как правильно хранить изображения в SQL и как правильно работать с ними в WPF проекте?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Идеальное решение без лишних рассуждений

    Картинки - в S3, а перед S3 поставить CDN, чтобы сильно S3 не нагружать.
    В центральную базу данных на сервере - только идентификаторы картинок.

    Клиент (на WPF) будет обращаться к какому-то приложению, которое написано на ASP NET Core, а оно, в свою очередь, будет идти в центральную БД за всякой инфой.

    Опционально - клиент будет идти в CDN за картинками.
    Сами картинки потом пусть кэшируются в ФС, чтобы не нужно было идти за ними повторно.
    Данные о модах тоже можно кэшировать, но уже в sqlite - это полезно будет, пока нет интернета, или пока актуальный список модов загружается.



    Да, единственный хороший вариант хранить картинки в базе - это не хранить картинки в базе, а хранить лишь пути или идентификаторы картинок.

    Главный минус картинок в ФС - это то что они будут привязаны к одному серверу. Лучше хранить картинки в другой системе (S3 или CDN) и хранить в базе их идентификаторы, чтобы потом клиент мог сам их скачать, если это необходимо. Так раздача картинок не будет привязана к основному серверу.

    А клиент пусть их кэширует также у себя на диске.

    В будущем я хотел бы попробовать сделать так, чтобы база была на каком-то сервере, чтобы многие могли пользоваться приложением, но не думаю, что это будет нормально работать, да и вообще не красиво( Заранее спасибо.

    Если ты хочешь, чтобы разные пользователи имели доступ к единой базе модов, то действительно надо сделать какой-то сервер.

    Ну и клиент на WPF не должен напрямую подключаться к MS SQL.
    MS SQL должен находится где-то на сервере и спрятан за каким-то другим web-сервером (который будет написан с использованием ASP NET Core например), который будет уже отвечать за всякую логику.
    Если тебе нужна локальная база данных на клиенте (для кэша например), то лучше использовать sqlite.
    Ответ написан
    2 комментария
  • Как в цикле For передать два значенния?

    @Everything_is_bad
    zip, но лучше начать читать учебник, если такое в ступор вводит.
    Ответ написан
    Комментировать
  • Насколько приемлема такая проверка на четность (делимость) в Python?

    febday
    @febday
    if a % 2:
    Это тоже самое, что и
    if a % 2 == 1:
    Ну или это
    if a % 2 != 0:

    Поскольку 1 в булево значениях это True, а первый вид условия отвечает всегда на True, как и другие в принципе

    Поэтому решать лишь вам как записывать. В любом из вариантов это читабельно
    Ответ написан
    Комментировать
  • Как исправить проблему импорта библиотеки python-valve?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Библиотека valve поддерживает максимум python 3.7, у вас 3.12. Библиотека не обновлялась около 4 лет. Закопайте стюардессу.
    Ответ написан
    Комментировать
  • Какая сфера в IT/яп лучше подходят для работы параллельно с учебой?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если стоит задача именно зарабатывать, то единственный сейчас для студента выход - это партайм в общепите, торговле или доставке. Работу по специальности найти практически невозможно. Редких счастливчиков с выдающимися качествами возьмут на бесплатную стажировку.
    Ответ написан
    2 комментария
  • Парсинг id аккаунтов сайта циклом?

    @maksam07
    Можно ли

    Можно. Все что видно в браузере - можно. А иногда и немного того, что не видно.
    Ответ написан
    Комментировать
  • При команде `!mine` алмазы 0, как исправить?

    Vindicar
    @Vindicar
    RTFM!
    Рекомендую выучить язык, прежде чем писать ботов.
    Посмотри на свой код (выделено мной):

    elif user_data[5] == '<:939223290105454632:1164940159050059786>':
    ...
    elif user_data[5] == '<:939195860317773856:1164153649296048148>':
    ...
    elif user_data[5] == '<:939223290105454632:1164940159050059786>': # Добавлено условие для железной кирки
    ...

    У тебя уже есть условие для железной кирки. Оно отработает первым, и в дальнейшие ветки elif управление просто не перейдёт. Более простой пример, иллюстрирующий твою ошибку:
    x = 1
    
    if x == 0:
      print('Ноль!')
    elif x == 1:
      print('Один!')
    elif x == 2:
      print('Два!')
    elif x == 1:
      print('Раз!')

    Код выведет "Один!" а не "Раз!".
    Единственный способ добиться нужного поведения - исправить уже существующую ветку.
    x = 1
    
    if x == 0:
      print('Ноль!')
    elif x == 1:
      print('Раз!')
    elif x == 2:
      print('Два!')


    В коде вообще много спорных решений, но про них лучше отдельно поговорить.
    Ответ написан
    1 комментарий
  • Постоянно вылазит ошибка NoneType:None в чём дело?

    Vindicar
    @Vindicar
    RTFM!
    А что, по твоему, ты пытаешься сделать?
    Эта функция выводит информацию о текущем обрабатываемом исключении. А у тебя в коде исключения не выбрасываются.
    По факту, эту функцию имеет смысл использовать только когда обрабатываешь исключение, т.е. внутри блока except.
    Ответ написан
    Комментировать
  • Куда развиваться верстальщику?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    сложилось ощущение, что web заканчивается на вёрстке лендингов и создании интернет-магазинов

    Разработчики Озон, Сбербанк-Онлайн, Яндекс, Netflix и многие другие смотрят на это заявление с недоумением. Да и интернет-магазины вы зря недооцениваете, например М-Видео разрабатывает большая команда, в которой несколько тимлидов.
    Ответ написан
    2 комментария
  • Python and json не правильно формирует базу, как починить?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Используйте базу данных. Например SQLite а не выдумывайте свои костыли
    Ответ написан
    1 комментарий
  • Python cоздание переменной с значением генерируемой переменной?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну если ты только изучаешь python, зачем тебе pandas. Код не надо править его нужно выкидывать.

    a) Ты хочешь прочитать каждый xlsx файл в отдельный фрейм, это нормально. Создаешь пустой список и складываешь в него фреймы.
    dfs = []
    for filename in fileanmes:
        df = pd.read_excel(filename)
        dfs.append(df)

    где filenames твои пути для xlsx файлов.

    б) Задача не ясна. На сколько я понял у этих файлов разные имена колонок и надо выбрать общий для всех набор.

    from functools import reduce
    import numpy as np
    
    df1 = pd.DataFrame({
        'A':[1],
        'B':[2]
    })
    
    df2 = pd.DataFrame({
        'A':[1],
        'C':[2]
    })
    
    df3 = pd.DataFrame({
        'A':[1],
        'D':[2]
    })
    
    dfs_column_names = [df1.columns, df2.columns, df3.columns]
    print(reduce(np.intersect1d, dfs_column_names))
    Вот так ты можешь найти общие колонки у любого количества фреймов.
    Естественно тебе не нужно хардкодить список с колонками прям в первом цикле заноси не только фрейм в список, но и в другой список заноси его колонки потом вне списка сохрани общий набор колонок как я привел в примере.

    Ну и я так понимаю в дальнейшем ты собираешься выбрать по уникальным для всех фреймов колонкам и собрать все в единый фрейм. pd.concat(dfs). Где dfs это список фреймов, с едиными колонками. То есть предварительно, ты как я показал нашел common_columns. и затеам dfs=[df[common_columns] for df in dfs]. И затем конкатенируешь.
    Ответ написан
    4 комментария
  • Как считать выражение из переменной?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если это
    lst = [1, 2, 1-2**64, 2**64]
    то нельзя, так как 1-2**64 вычисляется в момент создания списка.

    Единственный вариант - сразу передавать в строковом виде
    lst = ["1", "2", "1-2**64", "2**64"]
    pairs = [(x, eval(x)) for x in lst]
    min_pair = min(pairs, key=lambda x: x[1])
    print(min_pair[0])
    Ответ написан
    Комментировать
  • Как дропнуть все таблицы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе проще новую базу создавать каждый раз. Я так делал. А старая пускай лежит как бекап.
    Создаешь db1, db2, db3.... Потом удаляешь которые уже не нужны.

    Или в докере разворачиваешь если пустая нужна.
    Ответ написан
  • Ошибка NameError: name 'np' is not defined?

    Maksim_64
    @Maksim_64
    Data Analyst
    Попробуй установить если не установлен numpy и импортировать его import numpy as np
    Ответ написан
    Комментировать
  • Где учить нейросети python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Пока что посмотрел про линейные и полиноминальные регрессии
    слово регрессия может упоминаться в контексте вида задач машинного обучения, чьей главной особенностью является непрерывность зависимой переменной. Задачи регрессии можно решать как средствами классического ML так и нейронными сетями. Так и в контексте алгоритмов. полиномиальная регрессия, простая регрессия, авторегрессия и т.д. Так вот скорее всего судя по твоему вопросу, не с какими нейронными сетями ты не знакомился, а просто посмотрел какие то алгоритмы классического ML.

    Где и как изучать, это долгий путь. Что бы понимать принцип нейронных сетей. Нужна Линейная алгебра и Одномерное и Многомерное исчисление (Multivariable Calculus). Что бы понимать что происходит, ты должен уметь дифференцировать и знать что такое оптимизация функции. Этому нельзя научится прочитав статью.
    Либо ищи книги материалы по Линейной Алгебре и Одномерному и Многомерному Исчислению (Дифференцирование Интегрирование функции (одной, многих переменных)) на русском. Либо если знаешь английский (что я бы назвал обязательным требованием для IT любого направления уровня специалист). На khan academy есть курсы которые восполнят требования со стороны математики (Algebra1, Algebra 2,Precalculus, Calculus AB, Caluclus BC, Multivariable Calculus, Linear Algebra). Если с этим материалом будет все комфортно, то дальше покупаешь книгу по deep learning. И не испытываешь не каких проблем по пониманию материала. Во время обучения натаскиваешь чистый python, что бы мог читать чужой код, и не испытывать проблем при работе с библиотеками. И подучиваешь необходимы библиотеки из ML стека.
    Ответ написан
    3 комментария
  • Ошибка 'AudioDevice' object has no attribute 'activate'. Как исправить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вероятно, атрибут Activate с большой буквы, судя по документации pycaw.
    Ответ написан
    5 комментариев
  • Почему код разбиения на слагаемые не работает?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Во-первых, "слагаемые".
    Во-вторых, почитайте код вашей рекурсивной функции, он выдаёт количество, а не сами варианты сложения. Если не можете это понять из кода, то вам рано такие задачи. Серьёзно.
    А ошибка у вас из-за того, что такой алгоритм упирается в размер максимальной глубины рекурсии. Если хотите такие значения считать, делайте итеративный алгоритм, а не рекурсивный. Если эти слова тоже для вас новые, то надо браться за учебник, эта задача слишком сложна будет для вас.
    Успехов.
    Ответ написан
    Комментировать
  • Как исправлять названия файлов (переименовывать) скачанных из ВК и других источников с нижним подчеркиванием?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я ищу какое-нибудь приложение, утилиту или скрипт, который поможет мне автоматически исправлять имена файлов.

    Коробочного решения скорее всего не будет. Тут слишком много всякой специфики. Не напасешся правил.

    Из кроссплатформенных - могу предложить Java и Python. Разумеется вы должны уметь на них
    писать или лучше наймите фрилансера чтоб он вам один раз это хотя-бы написал.
    Ответ написан
    Комментировать
  • Как нажать кнопку на сайте, парсинг?

    @alekssamos
    Программист любитель
    import requests
    s=requests.session()
    s.headers={"X-Requested-With": "XMLHttpRequest"}
    joke_text = s.post("https://randstuff.ru/joke/generate/").json()["joke"]["text"]
    print(joke_text)
    Ответ написан
    Комментировать