LINUX.ORG.RU

Сообщения rmu

 

Ускорить запуск pyqt программки через multiprocessing

Всем привет!

Люди, пожалуйста, помогите разобраться с multiprocessing в pyqt. Хочу изменить картинку на QLabel через дочерний процесс. Такой код:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from multiprocessing import Process, Pool


class Test(QWidget):
    def __init__(self):
        super().__init__()
        self.layout = QVBoxLayout()
        self.setLayout(self.layout)

        self.label = QLabel()
        self.layout.addWidget(self.label)

        self.pixmap = QPixmap()


def set_pixmap(classname=None):
    classname.pixmap.load('test.jpg')
    classname.label.setPixmap(classname.pixmap)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    test = Test()
    test.show()

    proc = Process(target=set_pixmap, kwargs={'classname': test})
    proc.start()
    proc.join()

    # pool = Pool()
    # pool.map(set_pixmap, (test,))
    # pool.close()
    # pool.join()

    sys.exit(app.exec_())

В таком виде картинка не появляется. Если через pool запускать, то валятся ошибки:

Process ForkPoolWorker-1:
Traceback (most recent call last):
  File "/usr/lib/python3.5/multiprocessing/process.py", line 254, in _bootstrap
    self.run()
  File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.5/multiprocessing/pool.py", line 108, in worker
    task = get()
  File "/usr/lib/python3.5/multiprocessing/queues.py", line 345, in get
    return ForkingPickler.loads(res)
RuntimeError: super-class __init__() of type Test was never called

Читал, что виджеты в pyqt должны быть созданы в главном потоке: у меня так и есть, вроде, у виджета только свойство меняю. Можно ли дочерним процессом установить QPixmap?

 , ,

rmu
()

Как на питончике кошерно переместить файл в корзину?

Привет!

Если отправлять файлик по пути

os.path.expanduser('~') + '/.local/share/Trash/files'
то их не видно через дельфин. Есть ли универсальный способ, чтоб ещё и на разных DE работал?

 ,

rmu
()

Ищу смотрелку картинок с одной особенностью

Привет всем,

уже не первый раз пытаюсь найти смотрелку картинок, которая умеет по клику мышкой (пока держу) увеличивать масштаб изображения, а как отпускаю - чтоб возвращался обратно (такая особенность есть в faststone). Не уже ли ничего подобного в линухах нет?

 ,

rmu
()

KDE 5 + hibernate

С переменным успехом пытаюсь надрессировать свой переносной компьютер засыпать без swap в файл с помощью tuxonice. Решение никак не приходит в голову. Если напрямую ввести sudo hibernate - компьютер спит и просыпается: вроде хорошо, но мне хочется модную кнопочку KDE, как есть для выключения, ждущего режима и т.д. Upower с 0.9.18 версии передал управление спящим режимом в systemd. Тот, как я понял, без swap засыпать не даёт и выкидывает:

Failed to hibernate system via logind: Sleep verb not supported
О проблеме пишут, решения вроде пока по ней нет. Ладно с этим. Ставлю upower 0.9.17 + патч:
up-daemon.c
 			g_debug ("not enough swap to hibernate");
-			return FALSE;
+			// Lamarque 07/10/2012: tuxonice does not need swap :-P
+			//return FALSE;
+			return TRUE;
чтобы без swap работал, а он требует pm-utils, который конфликтует с tlp, а отказаться от последнего не представляется возможным, всё таки любовь, она такая.

И вот палка о двух концах. Убираю pm-utils из зависимостей upower - пакет не может установиться, потому что должен что-то изменять в конфигах pm-utils, которых нет.

Посоветуйте что-нибудь.

 ,

rmu
()

Помогите с отладкой DSDT таблицы

Всем привет.

Хочу отремонтировать DSDT таблицы у своего ноутбука. Но никак не могу найти решения двух вопросов:

  1. Как вести отладку
  2. Нужна русская литература

1)

Писать из ACPI в dmesg довольно просто, но не понятно, как получить информацию об ошибках на подобие traceback. Например здесь:

ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20150410/hwxface-580)
Ошибка есть, но как понять почему не найден? Где искал?

Увеличение уровня логов ACPI выводит тонны сообщений, вида:

[   23.213726]   exutils-0136 ex_exit_interpreter   : ----Exit-
[   23.213732]    nseval-0324 ns_evaluate           : ----Exit- AE_OK
[   23.213735]  utobject-0461 ut_get_simple_object_s: ----Entry ffff880000083b88
[   23.213739]  utobject-0564 ut_get_simple_object_s: ----Exit- AE_OK
[   23.213742]    utcopy-0398 ut_copy_iobject_to_eob: ----Entry
[   23.213745]    utcopy-0118 ut_copy_isimple_to_esi: ----Entry
но не понятно где и в каких блоках/методах это всё происходит.

Давно с переменным успехом борюсь с ASPM, уже не на первом ноуте.

\_SB_.PCI0:_OSC invalid UUID
Выводил значения входящих аргументов метода _OSC, возвращаемые значения - появилось ещё больше вопросов: как работают эти методы, почему вызываются только один раз, когда PCIe устройств целая куча: на одних ASPM автоматически включается, на других нет, а сообщения от метода приходят только один раз. При этом спецификация говорит, что «The OS is permitted to evaluate _OSC an arbitrary number of times».

Хочу исправить другие косяки биосаписателей, например:

ACPI Warning: SystemIO range 0x0000000000002000-0x000000000000201F conflicts with OpRegion 0x0000000000002000-0x000000000000200F (\_SB_.PCI0.SBUS.SMBI) (20150410/utaddress-254)
Для всего этого требуется что-то вроде traceback. Или есть хорошие решения для отладки?

2)

ACPI спецификация составлена хорошо, на многие вопросы нашёл ответы, но тем не менее хочется какого-нибудь русскоязычного руководства. В русских интернетах почти все найденые мною блоги и форумы сводятся к решению ошибок компиляции DSDT таблиц для установки проприетарщины, которую я не хочу здесь упоминать. Ничего толкового.

Прошу русское сообщество линуксоводов помочь в решении этих вопросов. Спасибо всем, кто может поделиться знаниями или дать хорошие ссылки.

 , ,

rmu
()

Plasma 5.6.1 и задачи из разных комнат

Привет,

хочу спросить кедоводов: у меня одного, при выставленных галочках в настройках панели задач:

  • Показывать задачи только с текущего экрана
  • Показывать задачи только с текущего рабочего стола
  • Показывать задачи только из текущей комнаты

всё равно остаются все задачи и окна открытыми при смене комнаты? Как если бы смена комнат нужна была для смены обоев. На 4 кедах всё работало, как и было задумано.

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

Что это: баг или фича?

 ,

rmu
()

Виртуальная надстройка над файловой системой для сборки пакетов

Всем привет,
не знаю как кратко сформулировать идею, может поможете. Нередко для сборки пакетов (у меня arch) требуется установить development или подобные им пакеты, которые в остальное время не нужны. Интересует, есть ли какая-нибудь виртуальная надстройка над файловой системой, работающая по принципу:

  • все файлы на жёстком диске доступны для чтения
  • если требуется создать новый файл, то он создаётся в виртуальном слое
  • если требуется изменить существующий на диске файл - создаётся его виртуальная копия, над ней проводятся изменения, ей отдаётся предпочтение
  • после окончания сборки виртуальный слой можно удалить одной командой
  • система осталась чистой, ничего удалять не нужно

Существует ли что-нибудь подобное? Понятна ли идея?

 ,

rmu
()

yakuake: как передать путь до папки при старте?

Привет,
не могу найти, можно ли передать yakuake путь до папки? Вообще он какие-нибудь параметры принимает? Ни мана, ни справки.

 

rmu
()

Куда делся multilib.abs.tar.gz ?

Просмотрел несколько зеркал - нет multilib.abs.tar.gz для abs. Куда он делся? Например, здесь нет: http://archlinux.polymorf.fr/multilib/os/x86_64/multilib.abs.tar.gz

 , ,

rmu
()

Два простых вопроса к профи по почтовым сертификатам

Привет, уважаемые

  1. Настроил на впс-ке веб и почтовый сервера. Везде работают доверенные сертификаты, а для OpenDKIM самогенерированный. В исходящих письмах домен нормально подтверждается, но у меня есть доверенный .pfx сертификат, которых хотел бы пристроить для этой цели заместо самодельного. Прошу подсказать как его сконвертировать в подходящий для DKIM сертификат с публичной частью.
  2. почту настроил на домен вида example.com, а почти везде пишут, что надо делать вида mail.example.com. Нужно ли перенастроить, если у меня только один сервер с одним ip адресом?

 ,

rmu
()

perpetuum mobile

Если на яндексопочте настроить пересылку писем на гуглопочту, а на гугле сделать тоже самое, только наоборот, и после этого с одного из ящиков написать на другой - запустится самый настоящий perpetuum mobile! Или нет? Если нет, то какой из ящиков сдастся первым, никто не пробовал?

 

rmu
()

Опасная консоль: webmail horde несёт угрозу для сервера

Всем привет,

поднял на debian jessie почтовый сервер с вебмордой php-horde. Апач запускаю с плагином apache2-mpm-itk от специального для этих целей пользователя webuser, у которого настроил шелл /bin/false. В хорде есть возможность обращаться к консоли, так вот: даже с шелом /bin/false она продолжает исправно работать.

Спрашиваю консоль: whoami -> webuser. Вроде всё правильно, но кроме того можно посмотреть много чего интересного в /etc и т.д. Вопрос: каким местом он делает вызовы, если шелл /bin/false?

Ну или как защитить apache от доступа к файловой системе из horde без chroot. Благодарю за любую помощь.

 , ,

rmu
()

REDIRECT --to-недоступный-снаружи-port

Всем привет.

В огонь-стене поставил перенаправление с 80 на 4000 порт. Политика по умолчанию -P INPUT DROP. Открыл оба порта (так --state NEW --dport 4000 -j ACCEPT). Хочу, чтобы 4000-й был недоступен извне ни для коннекта, ни для сканирования. Возможно?

 

rmu
()

utf символ linux

В таблице юникода не нашел ничего похожего на тукса. Есть пингвин:

🐧 🐧 F0 9F 90 A7

Он вообще у кого-нибудь отображается на стандартных шрифтах в браузере? Может быть кому-то попадались символы, очень похожие на дебиан или арч?

 ,

rmu
()

Не хватает прав для запуска http сервера

Привет, lor

Нужно заставить работать временную http файлопомойку не от рута. Для этих целей создал спец. пользователя, домашней папкой установил корень сайта. Сервер запускаю так:

python3 -m http.server 80
В ответ даёт ошибку:
  File "/usr/lib/python3.4/socketserver.py", line 440, in server_bind
    self.socket.bind(self.server_address)
PermissionError: [Errno 13] Permission denied
Добавил в группу www-data - не помогает. В какую группу добавить пользователя или что с ним сделать, чтобы он смог сокет открыть? От рута всё работает, но не хочется запускать с такими привилегиями, боюсь.

Debian 8.0

 ,

rmu
()

Как настроить ns1 и т. д. при регистрации VPS?

Добрый вечер.

Облазил кучу форумов, читал статьи по работе dns, но так и не могу разобраться. Зарегистрировал домен domain.ru у регистратора 2domains.ru, среди его настроек есть две NS записи ns1.reg.ru. и ns2.reg.ru. При регистрации VPS (у другой компании) требуют указать Hostname, на одном из форумов советуют так: myname.domain.ru А в NS1 и NS2 нужно записать ns1.reg.ru. и ns2.reg.ru. соответственно (с точками). Это верно?

 , ,

rmu
()

Помогите подключиться по ssh к vps из-за институтского NAT

Всем привет. Арендовал VPS, там ssh слушает нестандартный 5-значный порт. Интернет получаю по вай-фаю и, на сколько я знаю, до выхода в мир у меня как минимум 3 NAT-а, если не больше. Если просто посмотреть на ssh порт сервера, то получается такой ответ:

$nmap -sV x.x.x.x -p xxxxx
Starting Nmap 6.46 ( http://nmap.org ) at 2016-01-28 22:28 EET
Nmap scan report for x.x.x.x
Host is up (0.012s latency).
PORT      STATE    SERVICE VERSION
xxxxx/tcp filtered unknown
Подключиться не получается. Если подключиться к vpn (vpngate.net), то порт выглядит так:
$nmap -sV x.x.x.x -p xxxxx
Starting Nmap 6.46 ( http://nmap.org ) at 2016-01-28 23:29 EET
Nmap scan report for x.x.x.x
Host is up (0.50s latency).
PORT      STATE SERVICE VERSION
xxxxx/tcp open  ssh     OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
и соответственно к серверу подключиться можно. На моём гейтвее с портами такая ситуация:
Host is up (0.038s latency).
Not shown: 984 filtered ports
PORT      STATE  SERVICE        VERSION
7/tcp     closed echo
21/tcp    closed ftp
22/tcp    open   ssh            OpenSSH 6.6 (protocol 2.0)
23/tcp    closed telnet
53/tcp    closed domain
79/tcp    closed finger
80/tcp    open   http           Embedthis-Appweb/3.2.3
113/tcp   closed ident
179/tcp   closed bgp
443/tcp   open   ssl/https      Embedthis-Appweb/3.2.3
513/tcp   closed login
646/tcp   closed ldp
3221/tcp  closed xnm-clear-text
3784/tcp  closed bfd-control
5060/tcp  closed sip
33899/tcp closed unknown
С впн-ом общение с сервером идёт с большими задержками, и часто просто встаёт. Можно ли решить проблему малой кровью?

 , ,

rmu
()

Помогите выбрать VPS сервер. Что значит «1 x NAT IPv4»?

Добрый вечер.

Выбираю VPS сервер для учебных целей. У меня на выбор есть два варианта:

  • один имеет 1 x NAT IPv4 + подсеть ipv6
  • другой 20 NAT IPv4 Ports + подсеть ipv6

Есть идея поднять там openvpn сервер, чтобы соединить два или чуть более компов, не имеющих белых айпи адресов, в одну сеть. Что такое NAT понимаю, а что из двух вариантов лучше - не знаю. Тестового периода нет, в остальных параметрах почти то же самое.

 ,

rmu
()

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

Всем привет. Собственно зашел в тупик, прошу помощи. Хочу постоянно держать маленькую картинку поверх вообще всего. Кроме питона ничего не знаю, поэтому набросал вот такой скриптик:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
__author__ = 'evgeny'

import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *


if __name__ == '__main__':
    app = QApplication(sys.argv)

    class trayApp(QSystemTrayIcon):
        def __init__(self,  parent=None):
            QSystemTrayIcon.__init__(self,  parent)

            self.splash = QSplashScreen(QPixmap('x.png'), Qt.WindowStaysOnTopHint)
            self.splash.show()

            # Таймер добавил для циклического поднятия наверх
            self.timer = QTimer()
            self.connect(self.timer, SIGNAL('timeout()'), self.raising)
            self.timer.start(1000)

            self.quitAction = QAction(self.tr('&Exit'), self)
            self.connect(self.quitAction, SIGNAL('triggered()'), app, SLOT('quit()'))

            self.trayMenu = QMenu()
            self.trayMenu.addAction(self.quitAction)
            self.trayIconImage = QIcon('x.png')
            self.setIcon(self.trayIconImage)
            self.setContextMenu(self.trayMenu)

            self.show()

        def raising(self):
            self.splash.raise_() # не помогает
            print('Raised!')

    main = trayApp()
    sys.exit(app.exec_())
Однако флаг Qt.WindowStaysOnTopHint не даёт нужного эффекта: при выборе любого окна картинка уходит на задний план. Как я понял из документации
Some X11 window managers do not support the "stays on top" flag. A solution is to set up a timer that periodically calls raise_() on the splash screen to simulate the "stays on top" effect.
проблема в иксах, поэтому добавил предлагаемую фичу. Тем не менее это не даёт результата.

Может быть я вообще не туда копаю, и есть решение проще?

 

rmu
()

Боитесь ли вы слежки через интернет?

Лично я не переживаю по поводу шпионства со стороны АНБ, оффопика, разных зарубежных интернет-гигантов, соцсетей и всего остального: госсекретами не владею, чем-то ещё важным - тоже, им то какое до меня дело?

А вот свои спецслужбы и посадить могут.

 

rmu
()

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