• Как сделать автозапуск python программы с виртуальным окружением в фоновом режиме на линукс?

    drygdryg
    @drygdryg
    Python-разработчик
    Можно использовать систему инициализации Systemd. Напишите unit-файл такого вида:
    [Unit]
    Description=My Script Service
    After=multi-user.target
    
    [Service]
    User=user  # Имя пользователя, от имени которого будет запускаться команда, указанная в ExecStart
    WorkingDirectory=/home/user/program  # Директория, в которую будет осуществлён переход перед запуском
    ExecStart=/home/user/program/venv/bin/python /home/user/program/webui.py
    Restart=always  # Всегда перезапускать скрипт при его падениях
    
    [Install]
    WantedBy=multi-user.target

    и сохраните его в директории /etc/systemd/system с расширением .service, например, /etc/systemd/system/my_program.service.

    Здесь не используется скрипт activate для активации виртуального окружения, но вместо этого указывается полный путь к интерпретатору Python внутри этого виртуального окружения.
    Также важно указывать абсолютные пути к файлам и директориям, даже несмотря на то, что задана рабочая директория WorkingDirectory.
    Если ваш скрипт опирается на сетевые соединение, в секции Unit в качестве After задайте network-online.target вместо multi-user.target:
    After=network-online.target
    Ответ написан
    1 комментарий
  • Почему к декодеру подключен элемет И?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А если прочитать документацию, то, внезапно, обнаружится, что активный уровень на выходе - низкий, а неактивный - высокий.
    654153e63f507442293716.png
    Ответ написан
    2 комментария
  • Сильно начал гудеть ноутбук. Что это может быть?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    Как будто что-то держит ее там. Понять не могу.
    Сто это может быть?

    1. открываешь гугил и пишешь там - разбор ноутбука марка такая модель такая
    - смотришь, делаешь как показали, не выходит в сервис несёшь.
    2. открываешь гугил и пишешь там - разбор ноутбука марка такая модель такая
    - смотришь, делаешь как показали, выходит, ищешь проблему
    -заказываешь с озона вентилятор, меняешь, пользуешься.
    Ответ написан
    Комментировать
  • Есть ли приблуды для принтера, чтобы загружать не картридж а краску?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, есть вот тут: https://www.originalam.net/ciss/hp/deskjet-5075.html - в целом СНПЧ там нормальные, сам долгое время использовал. Но вот имеет смысл колхозить, только если печатаете регулярно - иначе есть риск, что краска засохнет в печатающей головке, а в шлангах наберется пузырьков - с этим все бороться придется своими ручками тогда. А, еще желательно делать калибровку цветов - для чего желательно иметь соответствующую недешевую железяку. Иначе фотографии будут с искаженными цветами.
    UPD: а в наличии-то и нет именно этой ) Видимо не самый новый принтер.
    Ответ написан
    2 комментария
  • Не понимаю, почему программа "тяжелая"?

    Maksim_64
    @Maksim_64
    Data Analyst
    Потому что вызовов рекурсивной функции происходит больше раз чем ты ожидаешь, и растет все это дело не линейно с увеличением n. Нужно оптимизировать рекурсивную функцию.
    from functools import lru_cache
    @lru_cache
    def F(n):
        print(n)
        if n <= 1:
            return n
        if n>1: 
            return F(n-1)+F(n-2)
    F(8)
    Вот твоя функция в точности, я добавил кеширование результатов, и print(n). Запусти с ним и без него и посмотри сколько лишних вызовов происходит. Если владеешь английским вот хорошая статья почитай как сделать своими руками, без встроенного декоратора, различные стратегии и т.д. https://realpython.com/lru-cache-python/
    Ответ написан
    1 комментарий
  • Как работать с айди пользователя vk в vkbottle?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Это так не работает. Данный ресурс предназначен для решения конкретных проблем, возникших в процессе ваших попыток решить задачу. Выглядеть это должно примерно так:
    Мне надо: [описание задачи].
    Я делал вот-так: [код или описание ваших действий].
    Появилась вот такая ошибка:
    [текст ошибки или описание того, как итоговый результат отличается от ожидаемого]

    В таком случае будет что обсуждать.
    Хотите получить готовый код - заказывайте на фрилансе.
    Хотите получить примеры/гайды - ищите в интернете. Есть документации к библиотекам, есть сторонние гайды.
    Ответ написан
    Комментировать
  • Mikrotik rb750gr3, можно ли сделать wi-fi?

    @Drno
    Воспользуйся вифи точкой отдельной…
    Ответ написан
    6 комментариев
  • Как автоматически дублировать посты из telegram на сайт joomla?

    @zkrvndm
    Софт для автоматизации
    Шаг первый. Научитесь программно создавать материалы в Joomal 3 / 4. Короткий гайд:

    https://sitogon.ru/blog/250-kak-programmno-dobavit...

    Шаг второй. Научитесь программно кодом парсить записи в веб-версии телеграм. Для этого можно использовать реальный браузер и самописаное браузерное расширение для инъекции своего JavaScript-кода на сайт телегама. Короткий гайд по инъекции своего кода на сторонние сайты при помощи расширения:

    https://vc.ru/dev/159897-kak-sdelat-rasshirenie-dl...

    Шаг третий. Объедините первый и второй шаг и создайте итоговое финальное решение которое парсит посты из веб-версии телеграм и публикует их на вашем сайте Joomla. Да, я понимаю, что все это звучит как инструкция из разряда Как нарисовать Сову, но проще тут объяснить никак.

    Если не получается разобраться, вы всегда можете заказать готовый продукт у меня или у любого другого исполнителя из фрилансим: https://freelance.habr.com (лучшая IT доска объявления в РФ, чисто на мой взгляд)
    Ответ написан
    Комментировать
  • Как асинхронно использовать gui и несколько бесконечных циклов?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Асинхронный код запустить в отдельном потоке, а все взаимодействия с интерфейсом из этого кода делать сигналами. Есть ещё библиотеки, позволяющие использовать цикл событий asyncio в качестве цикла событий окна, что звучит здорово, но сам я их в бою не пробовал.

    UPDATE:
    Надо же, с 2019-го многое поменялось в интересную сторону. Для PyQt и PySide есть qasync, который активно развивается, а для Tk вообще не нужны сторонние библиотеки:
    import tkinter as tk
    from tkinter import ttk
    import asyncio
    
    
    class App:
        async def exec(self):
            self.window = Window(asyncio.get_event_loop())
            await self.window.show();
    
    
    class Window(tk.Tk):
        def __init__(self, loop):
            self.loop = loop
            self.root = tk.Tk()
            self.animation = "░▒▒▒▒▒"
            self.label = tk.Label(text="")
            self.label.grid(row=0, columnspan=2, padx=(8, 8), pady=(16, 0))
            self.progressbar = ttk.Progressbar(length=280)
            self.progressbar.grid(row=1, columnspan=2, padx=(8, 8), pady=(16, 0))
            button_block = tk.Button(text="Calculate Sync", width=10, command=self.calculate_sync)
            button_block.grid(row=2, column=0, sticky=tk.W, padx=8, pady=8)
            button_non_block = tk.Button(text="Calculate Async", width=10, command=lambda: self.loop.create_task(self.calculate_async()))
            button_non_block.grid(row=2, column=1, sticky=tk.W, padx=8, pady=8)
    
        async def show(self):
            while True:
                self.label["text"] = self.animation
                self.animation = self.animation[1:] + self.animation[0]
                self.root.update()
                await asyncio.sleep(.1)
    
        def calculate_sync(self):
            max = 3000000
            for i in range(1, max):
                self.progressbar["value"] = i / max * 100
    
        async def calculate_async(self):
            max = 3000000
            for i in range(1, max):
                self.progressbar["value"] = i / max * 100
                if i % 1000 == 0:
                    await asyncio.sleep(0)
    
    
    asyncio.run(App().exec())
    Ответ написан
    Комментировать
  • В чём у меня ошибка в данной задаче?

    Maksim_64
    @Maksim_64
    Data Analyst
    Странно, вроде занимаешься машинным обучением где-то взял код, а не вопрос нормально задать не можешь, не подправить в двух местах, ошибки которые и к машинному обучение то отношения не имеют.
    print((f'accuracy:{accuracy_score(y_perd,y_test) :.3}'))
    вот в этой строчке, ты не смог подправить не правильно написанное имя переменной, y_pred должно быть.
    вот в этой строчке ты не смог правильно написать название колонки
    sns.scatterplot(x='petal_width', y='petal_lenght',data=iris,hue = 'species', s=70)
    должно быть y='petal_length'

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

    А ну и закомментируй лишнее в общем вот рабочая версия
    код
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import accuracy_score
    import seaborn as sns
    from matplotlib import pyplot as plt
    import numpy as np
    import pandas as pd
    from sklearn import datasets
    
    iris= sns.load_dataset('iris')
    #iris
    x_train, x_test, y_train, y_test= train_test_split(
        iris.iloc[:,:-1],
        iris.iloc[:,-1],
        test_size= 0.15
    )
    
    def init_model(k, x_train, y_train, x_test):
      model = KNeighborsClassifier(n_neighbors=k)
      # print(model)
      model.fit(x_train,y_train)
    
      y_pred = model.predict(x_test)
      return y_pred
    
    def grath(y_test,x_test,y_pred):
      plt.figure(figsize=(10, 7))
      sns.scatterplot(x='petal_width', y='petal_length',data=iris,hue = 'species', s=70)
      plt.xlabel('Длина лепестка,см')
      plt.ylabel('Ширина лепестка,см')
      plt.legend(loc=2)
      plt.grid()
      for i in range(len(y_test)):
          if np.array(y_test)[i] != y_pred[i]:
              plt.scatter(x_test.iloc[i,3],x_test.iloc[i,2],color = 'red', s = 150)
    
    
    
    # x_train.shape, x_test.shape, y_train.shape, y_test.shape
    
    # x_train.head()
    # y_train.head()
    
    k = int(input('Чему равно k? '))
    
    y_pred = init_model(k,x_train,y_train,x_test)
    print((f'accuracy:{accuracy_score(y_pred,y_test) :.3}'))
    grath(y_test,x_test,y_pred)
    Ответ написан
    1 комментарий
  • Как хранить константы в python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Вот большой гайд о константах, Там в принципе описаны все возможные способы создания констант, а их много. И самое главное, есть раздел Handling Your Constants in a Real-World Project, то что тебе и нужно, а не просто "знакомство". Ресурс в python среде пользуется репутацией, его даже в продвинутых книгах упоминают.
    https://realpython.com/python-constants/
    Ответ написан
    4 комментария
  • Как подключить библиотеку которая в процессе написания?

    xenon
    @xenon
    Too drunk to fsck
    Некрасивое решение: просто в том же каталоге держите тестовый скрипт и подключаете ее, прямо сходу, не устанавливая. Делаете что-то вроде export PYTHONPATH=. и импортируете ее в этом скрипте, типа import mylib (она загрузится из ./mylib)

    Более красивое решение - используйте тесты. То что вы делаете ("нужно дебажить") - это же по сути тестирование и запускаете их через pytest.

    Могу посоветовать посмотреть мою библиотеку evalidate как образец. Она, наверняка, далека от идеала, но эта проблема там вполне решена и пакет простой очень, разобраться несложно.
    Ответ написан
    2 комментария
  • Как убрать из телеграма истории?

    Их можно только архивировать.
    Ответ написан
    Комментировать
  • Ошибка при установки discord.py?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Ошибка при установки discord.py?
    да ошибка, попробуйте переводчик

    error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-buil...
    Ответ написан
    1 комментарий
  • Как исправить эту ошибку sql?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Ты в text передаешь кортеж значений, а хочешь только 1.

    Решений 2:
    - Если ты хочешь вставить только 1 значение - передавать только 1 значение, а не кортеж, и указать его явно
    cursor.execute(f'''INSERT INTO {table_name}(value)
                        VALUES(?);''',(text,))
    add_text('value')


    - Если хочешь несколько - явно укажи какие
    cursor.execute(f'''INSERT INTO {table_name}(value1, value2, value3)
                        VALUES(?);''', text)
    add_text(('value', 'second', third'))
    Ответ написан
    5 комментариев
  • Python and json не правильно формирует базу, как починить?

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

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Всё правильно. JSON не умеет работать с режимом append так, как хотите вы.

    1. Читаете файл с флагом "r" допустим в переменную data через data = json.load(f)
    2. В data вставляете/обновляете всё что вам нужно
    3. Записываете файл в режиме "w" через json.dump(obj, fp)
    Ответ написан
    2 комментария
  • У бота такая ошибка, что делать?

    Ошибка исчерпывающе описывает проблему и даже показывает на место её возникновения.
    Формат YML предъявляет строгие требования к индентации содержимого, которые у вас нарушены (после строки, видимо, идут дополнительные пробелы).
    Ответ написан
    5 комментариев
  • Существует ли в python библиотека для дополненной реальности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Когда говорят о таких высоко-технологичных отраслях то язык разработки обычно не имеет значения.
    Лучше найди вообще доступные в open-source augment reallity libs и посмотри какой у них API.

    Дописать до них вызовы API из Python это уже не science а обычная работа инженера. И тут главное - поставить
    правильно цель. А идти от языка - это неправильная цель.
    Ответ написан
    2 комментария
  • Нужно ли учить весь синтаксис?

    Steel_Balls
    @Steel_Balls
    в изучении языка синтаксис - самое последнее дело.
    ты бы для начала разобрался с памятью, типами, структурами данных, алгоритмами
    Ответ написан
    Комментировать