Ответы пользователя по тегу Python
  • Почему файл .service не запускается?

    smorman
    @smorman
    When In Rome do as The Romans do...
    На сколько я вижу, рабочая директория указана одна, а в Экзеке другая.
    WorkingDirectory=/root/zaim_bot/service - рабочка
    и
    ExecStart=/usr/bin/python3 /root/zaim_bot/main.py - Экзек ведёт на другую папку...

    Да, и, если указывается рабочая директория, то в Экзеке она уже не прописывается, а прописывается сразу команда на старт.
    Если я не путаю с правилами написания в Supervisor.

    Люди сейчас поправят...

    Да, всё таки в Systemd прописывается полный путь в Экзеке
    В Supervisor так, как я написал выше...
    Ответ написан
    5 комментариев
  • Как автоматом декодировать json с текстом в разных кодировках?

    smorman
    @smorman
    When In Rome do as The Romans do...
    А так?

    Тест
    import json, requests
    
    URL = 'https://api.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    def get_api_data(url, params=''):
        r = requests.get(url, params='okhttp/2.5.0')
        if r.status_code == 200:
            return r.text
        else:
            print('Ошибка загрузки данных!')
            exit(1)
            
    api_data = get_api_data(URL)
    api_json = json.loads(api_data)
    print(api_json)
    Ответ написан
    Комментировать
  • Как починить юникоднутый JSON в питоне?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Я справился таким образом:
    Починка юникоднутого JSON в питоне
    import json
    import requests
    
    ace_data = requests.get('https://api.aceхххх.хх/хххххххххххххххх_api_key').content.decode('unicode-escape', 'ignore')
    ace_json = json.dumps(ace_data)
    ace_json_load = json.loads(ace_json)
    print(ace_json_load)

    Т.е. к:
    requests.get('url')
    добавляем:
    .content.decode('unicode-escape', 'ignore')
    и получаем великолепный вывод кирилицы, как и положено!

    А если убрать из:
    requests.get
    ace_data = requests.get('https://api.aceхххх.хх/хххххххххххххххх_api_key').content.decode('unicode-escape', 'ignore')
    .content.decode('unicode-escape', 'ignore')
    то естесно будет вывод кирилицы в полном г..., типа:
    \u04e7
    хотя и utf-8
    Ответ написан
    Комментировать
  • Обойти TOR маршрутизацию в Python request?

    smorman
    @smorman
    When In Rome do as The Romans do...
    А не проще поставить утилиты: socat и tor и играться с настройками?

    Мы вот, в Проксе Пана Пепсика-Киев, в виду ухода Помойки в Tor-сеть, как раз используем этот вариант для открытия ace.json-ссылок и всё арбайтен гут!
    Ответ написан
  • Как исправишь ошибку supervisor?

    smorman
    @smorman
    When In Rome do as The Romans do...
    На вскидку, первая и пожалуй самая откровенная ошибка:
    command=python3.8 /root/besik.py

    Правильно:
    command=/usr/bin/python3 /root/besik.py

    Рекомендую добавить в этот юнит (как пример, значения 30, 10 меняете по вашим потребностям):
    startsecs = 30
    startretries=10
    stopasgroup = true
    priority = 999 (приоритет очерёдности загрузки процессов. По умолчанию 999 - авто)
    stdout_logfile_maxbytes = 50MB - размер лог-файла (у меня 50, вы можете, как вам нужно), иначе будет писать файл, раздувая его до бесконечности и когда-нибудь увидите сообщение, что места нет!


    Файл конфигурации:
    Надеюсь, вы после установки Supervisor выполнили создание полного конфигурационного файла, т.к. по умолчанию, после установки урезанный только:
    sudo sh -c 'echo_supervisord_conf > /etc/supervisor/supervisord.conf'

    Если не сделали, то обязательно сделайте и заново настройте конфиг!!!

    Теперь по конфигу, в секции:
    [supervisord]
    childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP
    - не обязательно. Можно закомментить - ;

    И наоборот - раскомментить (убрать в начале строки знак - ;) в строках:
    nodaemon=true               ; (start in foreground if true;default false)
    minfds=1024                  ; (min. avail startup file descriptors;default 1024)
    minprocs=200

    и обазательно в:
    user=
    дописать:
    user=root
    или, если эта запись ;user=root уже была, но была закомментена, то снять коммент - ;

    Ну, и апосля всех манипуляций выполнить:
    sudo supervisorctl reread; sudo supervisorctl update; sudo systemctl restart supervisor.service


    Вот здесь Как запустить python скрипт на ubuntu чтобы он не ... можете детально посмотреть на конфиги, где я всё подробно расписал...
    Ответ написан
    Комментировать
  • На ubuntu не ставится pip, что делать?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Так в 20.04 Python3 only (только), а значит не pip (он для python2), а pip3...
    И, я так полагаю, что репы Бубунты не подключены от слова совсем...
    Ответ написан
    Комментировать
  • Как запустить python скрипт на ubuntu чтобы он не отключался?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Systemd конечно оч. хорошо, но и Supervisor прекрасно справляется с такими задачами.

    Я, например, и многие мои собратья по Проксе-Пепсика (на Python3) запускаем её, как раз через Supervisor, что весьма удобно.

    Всё просто.
    Сначала устанавливаете его:
    sudo apt install supervisor

    Теперь - ОБЯЗАТЕЛЬНО! - создаём конфигурационный файл:
    sudo sh -c 'echo_supervisord_conf > /etc/supervisor/supervisord.conf'

    Если этого не сделать, то в папке /etc/supervisor будет лежать очень урезанный и бедный на настройки supervisord.conf файл и многие параметры придётся дописывать руками!

    Судите сами:
    - это урезанный файл после установки Supervisor
    Урезанный supervisord.conf
    ; supervisor config file
    
    [unix_http_server]
    file=/var/run/supervisor.sock   ; (the path to the socket file)
    chmod=0700                       ; sockef file mode (default 0700)
    
    [supervisord]
    logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
    pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
    childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)
    
    ; the below section must remain in the config file for RPC
    ; (supervisorctl/web interface) to work, additional interfaces may be
    ; added by defining them in separate rpcinterface: sections
    [rpcinterface:supervisor]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
    
    [supervisorctl]
    serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket
    
    ; The [include] section can just contain the "files" setting.  This
    ; setting can list multiple files (separated by whitespace or
    ; newlines).  It can also contain wildcards.  The filenames are
    ; interpreted as relative to this file.  Included files *cannot*
    ; include files themselves.
    
    [include]
    files = /etc/supervisor/conf.d/*.conf
    Ответ написан
    8 комментариев
  • Не могу установить телеграм бот на сервере ubuntu?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Рискну предположить, на вскидку...
    Не шибко силён в Телеграм-ботах...

    у вас ExecStart=/home/kokoto/uba/.venv/bin/python
    т.е. 2-й Питон запускается (по умолчанию в 18.04 и 2-й, и 3-й установлены)

    А это всё установили для 3-го Питона:
    python3-pip
    python3-dev
    python3-setuptools
    python3-venv


    А 2-й и 3-й они, как бы того - не алё друг с другом...

    У вас вывод:
    Failed at step GROUP spawning /home/kokoto/uba/.venv/bin/python: No such process

    Такой процесс отсутствует...

    Может изменить
    /home/kokoto/uba/.venv/bin/python
    на
    /home/kokoto/uba/.venv/bin/python3
    ?
    Ответ написан
  • UnicodeEncodeError как исправить??

    smorman
    @smorman
    When In Rome do as The Romans do...
    Не знаю, как это поможет вам и поможет ли, но у меня была такая ошибка, только с:
    Python3 code
    ace_json = requests.get(url_ace_json).content.decode('unicode-escape', 'ignore')


    Решилось добавлением 'plain', 'utf-8'
    Python3 code
    ace_json = requests.get(url_ace_json).content.decode('unicode-escape', 'ignore'), 'plain', 'utf-8'
    Ответ написан
    1 комментарий
  • Библиотека pip не устанавливает нужный мне пакет, что делать?

    smorman
    @smorman
    When In Rome do as The Romans do...
    я ответил это решением но хотелось бы установить через пип


    Ну, так и устанавливай через sudo, кто мешает?!
    sudo pip install ...........
    или
    sudo pip3 install ..........
    в зависимости от Питона, который хочешь юзать.

    Иногда можно и так:
    sudo -H pip install ...........
    или
    sudo -H pip3 install ...........

    В твоём случае, можно так:
    sudo -H python3 -m pip install pyqt5
    или pyqt4 в конце...

    Вот здесь How to Install PyQt5 in Ubuntu 18.04 19.04 на аглицком видос, как это делать...
    Ответ написан
    1 комментарий