LINUX.ORG.RU

Сообщения Qwentor

 

Подвисает интерфейс tkinter. Что делать?

Форум — General

Код:

root = Tk()
root.title("Парсер")
root.geometry('400x300')

lbl = Label(root, text="Запустите для начала парсинга")

def clicked():
    #много кода парсера


bar = Progressbar(root, orient=HORIZONTAL,length=350,mode='determinate')
btn = Button(root, text="СТАРТ", command=clicked)

lbl.pack(expand=True)
btn.pack(expand=True)
bar.pack(expand=True)

root.mainloop()


Вот при выполнении функции clicked интерфейс подвисает и прогрессбар больше не «прогрессирует», хотя в консоли все отрабатывает дальше до конца. Отвисает после завершения.
Что с этим делать и как?

 ,

Qwentor
()

Как подружить новую джангу со старой монгой?

Форум — General

Нужно из Django 2.2 подключаться к MongoDB 2.4.10
Система на Debian 9 amd64, Python 3.5

django-nonrel не поддерживается второй джангой, а для djongo нужен Python 3.6 и MongoDB 3-й версии

Сейчас говнокодю без интеграции в джангу, просто использую старую версию pymongo (новые уже тоже не поддерживают)

Есть ли возможность интегрировать это в Django ORM или говнокодить дальше?

 , ,

Qwentor
()

Ошибка при установке django-eztables

Форум — General
 Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-jdzx8z3u/django-eztables/setup.py", line 76, in <module>
      'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',
    File "/home/qwentor/onetwotrade/onetwotrade_env/lib/python3.5/site-packages/setuptools/__init__.py", line 145, in setup
      return distutils.core.setup(**attrs)
    File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/home/qwentor/onetwotrade/onetwotrade_env/lib/python3.5/site-packages/wheel/bdist_wheel.py", line 254, in run
      wf.write_files(archive_root)
    File "/home/qwentor/onetwotrade/onetwotrade_env/lib/python3.5/site-packages/wheel/wheelfile.py", line 123, in write_files
      self.write(path, arcname)
    File "/home/qwentor/onetwotrade/onetwotrade_env/lib/python3.5/site-packages/wheel/wheelfile.py", line 134, in write
      zinfo = ZipInfo(arcname or filename, date_time=get_zipinfo_datetime(st.st_mtime))
    File "/usr/lib/python3.5/zipfile.py", line 338, in __init__
      raise ValueError('ZIP does not support timestamps before 1980')
  ValueError: ZIP does not support timestamps before 1980

  ----------------------------------------
  Failed building wheel for django-eztables
  Running setup.py clean for django-eztables
Failed to build django-eztables
Installing collected packages: django-eztables
  Running setup.py install for django-eztables ... done
Successfully installed django-eztables-0.3.2



ValueError: ZIP does not support timestamps before 1980

Система Debian 9 amd64

И что с этим делать?

 , ,

Qwentor
()

Как понять почему упал сервер?

Форум — General

Вчера упал сервер, включили только сегодня. Как понять почему произошло падение? Какие логи и где смотреть?

/var/log/messages за вчера содержит только это:

May  3 06:25:01 localhost liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="583" x-info="http://www.rsyslog.com"] rsyslogd was HUPed


kern.log начинается сегодня, после включения

kern.log.1 заканчивается 19 апреля

В syslog ничего, кроме лога запуска задач по крону

Система Debian 9 amd64

Где искать?

 , ,

Qwentor
()

Как обновить кастомную клавиатуру в телеграм?

Форум — General

Есть бот на питоне, использую telebot (pyTelegramBotAPI).
При /start пользователю добавляется кастомная клавиатура с несколькими кнопками - ( telebot.types.ReplyKeyboardMarkup() ). Сейчас понадобилось добавить туда еще пару кнопок. Но у пользователя клавиатура обновляется только если он опять сделает /start, что он вряд ли будет делать.
Как сделать чтобы обновилась автоматически?

 , ,

Qwentor
()

Что использовать для сохранения всяческих мануалов?

Форум — General

Вот, бывает ищещь информацию о том как сделать какую-то вещь в интернете, например написать как настроить какой-то сервер, как правильно реализовать какую-то функцию и т.п., находишь, делаешь - все работает. А потом через годик опять надобится то же самое, а уже забыл как делал. Да, можно покопаться в старом коде, но иногда файлов много и точно не помнишь где и вообще в итоговую версию это в тот раз не попало и лежит где-то в старых копиях и попробуй найди. При этом в инете что-то больше с ходу не находится. Потом конечно разбираешься, но времени уходит больше, чем могло бы быть.

Что нужно: какая-нибудь программа или сервис, в которую можно сохранять мануалы. Не просто ссылки, т.к. ссылки порой умирают. И желательно не только текст, т.к., хоть и не часто, но бывает нужно с изображениями. Т.е. хотелось бы хранить копию HTML. Ну, можно, конечно просто завести директорию и браузером сохранять копии, но хотелось что-то более удобное, в виде какой-нибудь программы, где будет список с описаниями, а внутри собственно содержимое.

Лучше если это будет не сервис, а программа (т.к. сервисы не вечны), но при неимении лучшего, можно и сервис. Если программа, то обязательно кроссплатформа, т.к. не всегда за одним и тем же компом. Желательно, чтобы базу можно было хранить одновременно на локалхосте и в облаке, как это, например у KeePass

 

Qwentor
()

Как найти на графике все интервалы возрастания и убывания с помощью Python?

Форум — General

Есть «график» в виде ряда х | y, где x - время, а y - некоторые значения. Как с помощью Python найти все участки возрастания и убывания? Как найти все непрерывные участки, в которых по отношению к конкретной точке все точки имеют значение меньше/больше заданной точки? Есть какие-то готовые решения или хотя бы библиотеки, облегчающие задачу?

 ,

Qwentor
()

Как сделать такой редирект в nginx?

Форум — General

Как сделать такой редирект в nginx?
Нужно чтобы
https://mysite.domain/redir?domain=mybot&start=134244
перенаправляло на
tg://resolve?domain=mybot&start=134244

при этом числа после start могут быть разные

 ,

Qwentor
()

Как создать меню бота в виде именно меню?

Форум — General

Сабж
Нашел на stackoverflow такую инструкцию:

https://stackoverflow.com/questions/41956166/how-can-create-menu-for-telegram...

Но там же только список с кнопками? Как на них повесить команды?
Не могу нормально отыскать.

Для написания бота использую Python3 и telebot (который pyTelegramBotAPI)

 , ,

Qwentor
()

Как на DigitalOcean получить не заблокированный в РФ ip?

Форум — General

Сабж. Какую страну выбрать? Или DO тотально зароскомнадзорен?

 , ,

Qwentor
()

Помогите с выбором телефона

Форум — Mobile

Посоветуйте, пожалуйста, телефон взамену имеющегося Sony Xperia Z3

Критерии выбора:

1) Для чего требуется: звонки, интернет, раздача интернета, работа с VPS серверами в экстренных случаях (ssh, mysql, sftp), музыка, навигация, фотографирование
2) Диагональ от 5,2"
3) Максимальный бюджет - 17 тыс. руб.
4) Желательно наличие NFC модуля
5) Желательно наличие USB-OTG или возможность получить рут без плясок с бубном и получить эту функцию
6) Желательна покупка в интернет-магазине в Москве, Китай рассмотрю только если что-то действительно особенное или цена сильно ниже и при этом продавец давно работает и с положительными отзывами
7) ОС Андроид

Пока присматриваюсь к Xiaomi Mi Note 3. Правда хз как там с 5 пунктом пока

 , ,

Qwentor
()

Ошибка в многопоточном коде

Форум — General

Рассылка сообщений ботом подписавшимся юзерам.

используется multiprocessing

Постоянно такая ошибка:

Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.5/multiprocessing/pool.py", line 429, in _handle_results
    task = get()
  File "/usr/lib/python3.5/multiprocessing/connection.py", line 251, in recv
    return ForkingPickler.loads(buf.getbuffer())
TypeError: __init__() missing 2 required positional arguments: 'function_name' and 'result'


Постоянно в третьем треде, хотя треды одинаковые
Никакого намека на точное место ошибки, все в либах

Что с этим делать? Как искать?

Хм, попробовал выставить 2 потока - все равно Thread-3

 

Qwentor
()

Как заменить подстроку из нескольких слов в строке на Bash?

Форум — General

Вот так не работает:

DUMP=$(dbsake frmdump /path/to/table.frm)
FINDSTR="timestamp DEFAULT NULL"
REPL="timestamp DEFAULT CURRENT_TIMESTAMP"
QUERY=${DUMP//FINDSTR/REPL}
echo $QUERY


QUERY остается равным DUMP

 

Qwentor
()

Как разрешить zero dates в MariaDB?

Форум — General

Нужно бэкап с одного сервера перенести на другой.
Но в бэкапе присутствуют, к примеру, такие конструкции:

`dt` timestamp DEFAULT NULL,


Т.е. поле с датой по умолчанию NULL, а в новых версиях MySQL такое запрещено

В интернете предлагают записать такое в файл в /etc/mysql/conf.d/:
[mysqld]
sql_mode=IGNORE_SPACE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


Режим судя по результату запроса
show variables like 'sql_mode'

действительно меняется, но толку никакого -
1067 - Invalid default value for 'dt'


Версия базы MariaDB 10.1.37

В чем дело? Почему не работает?

 , ,

Qwentor
()

Падает сервер. Где искать причину?

Форум — General

Сабж
Совсем падает, не отзывается по ssh. Помогает только перезагрузка.
Поднят nginx к которому идут частые обращения. Статичная страница. Без php и прочего.
Но падает не nginx а весь сервер.
Как понять это ли причина или или что другое? Какие логи смотреть и на что?
Debian 9 x64

 ,

Qwentor
()

Ищу x86 non-pae дистрибутивы

Форум — General

Сабж
Такие ещё остались?
Кейс дурацкий, но мне нужно: запуск в VirtualBox под Windows XP, а в ХР никакого PAE - нормальные дистрибутивы не запускаются.

Если есть что-то на основе Дебиана - замечательно. Если нет - буду есть что есть

 , ,

Qwentor
()

Как заставить nginx проксировать поддиректории?

Форум — Web-development

Если у меня такой код в конфиге:

 location /dir {
    proxy_pass         http://127.0.0.1:7771/;
    proxy_redirect     off;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
  }

то все запросы к /dir перенаправляются на http://127.0.0.1:7771/

А как сделать, чтобы /dir/1/2 перенаправлялось на http://127.0.0.1:7771/d1/d2, /dir/d3/d23 на http://127.0.0.1:7771/d3/d23 и вообще любое количество вложенностей?

 ,

Qwentor
()

Почему не работает вебхук для телеграм бота?

Форум — General

Код бота:

import cherrypy
import telebot

BOT_TOKEN = "bot:token"

bot = telebot.TeleBot(BOT_TOKEN)

@bot.message_handler(commands=["start"])
def command_start(message):
    bot.send_message(message.chat.id, "Привет! Я бот номер 1")

class WebhookServer(object):
    @cherrypy.expose
    def index(self):
        length = int(cherrypy.request.headers['content-length'])
        json_string = cherrypy.request.body.read(length).decode("utf-8")
        update = telebot.types.Update.de_json(json_string)
        bot.process_new_updates([update])
        return ''

if __name__ == '__main__':
    bot.remove_webhook()
    bot.set_webhook(url='https://myserver.tk/bot')
    cherrypy.config.update({
        'server.socket_host': '127.0.0.1',
        'server.socket_port': 7771,
        'engine.autoreload.on': False
    })
    cherrypy.quickstart(WebhookServer(), '/', {'/': {}})


nginx:
location /bot {
    proxy_pass         http://127.0.0.1:7771/;
    proxy_redirect     off;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
  }


И ничего, на /start не реагирует
Через какое-то время валится с ошибкой:
telebot.apihelper.ApiException: A request to the Telegram API was unsuccessful. The server returned HTTP 504 Gateway Time-out. Response body:
[b'{"ok":false,"error_code":504,"description":"Gateway Timeout"}']


на сервере сертификаты от Let's Encrypt

 , ,

Qwentor
()

Чем мерять скорость прокси на питоне?

Форум — General

Сабж
Просто скачиванием файла заданного размера с другого сервера через прокси? Или есть более фэншуйные методы?

 , ,

Qwentor
()

Как с помощью iptables сделать перенаправление трафика на localhost?

Форум — Admin

Система Debian 9 x64

Вот Prerouting правила:

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
2    DNAT       tcp  --  anywhere             anywhere             tcp dpt:2222 to:10.0.3.170:22
3    DNAT       tcp  --  anywhere             anywhere             tcp dpts:1024:65535 to:10.0.3.170
4    DNAT       tcp  --  anywhere             anywhere             tcp dpt:domain to:10.0.3.170:53



Соответственно все соединения на непривилегированные порты отправляются в lxc комтейнер.
Нужно сделать исключения для пары портов.
Делаю так:
iptables -t nat -A PREROUTING -i enp2s0 -p tcp --dport 9000 -j DNAT --to 127.0.0.1:9000


и не работает (поднятый веб-сервер на 9000 порту недоступен)

роутинг на локалхост разрешил
sysctl -w net.ipv4.conf.enp2s0.route_localnet=1


Что я делаю не так?

 ,

Qwentor
()

RSS подписка на новые темы