Pyinstaller и Pyro4 - PullRequest
       41

Pyinstaller и Pyro4

0 голосов
/ 11 декабря 2018

Я создал простой пиро-сервер и попытался упаковать его в pyinstaller, но всякий раз, когда я пытаюсь запустить исполняемый файл, вызывая «./main --s», а затем на другой вкладке терминала «./main --c», код даетмне правильный вывод, но когда я смотрю на монитор активности, появляются новые случаи, когда мой исполняемый файл создается постоянно.Прерывание пользователем экземпляров оболочки не оказывает никакого влияния, и эти процессы продолжают порождаться, пока я полностью не перезапущу свою систему.

вот мой основной скрипт, который я компилирую как исполняемый файл:

from face_id.face_id import server, client
from multiprocessing import freeze_support
import sys

if __name__ == "__main__":
    freeze_support()

    if sys.argv[1] == '--s':
        server_start()
    elif sys.argv[1] == '--c':
        client_test()

вот определения классов для пиро:

from __future__ import print_function
import Pyro4
import time
import sys
import cv2

sys.path.append('./')
import face_id.face as face


@Pyro4.expose
@Pyro4.behavior(instance_mode="single")
class FaceIDServer(object):
    def __init__(self):
        pass

    def test_server(self):
        return 'hello world'


class FaceIDClient:
    def __init__(self):
        sys.excepthook = Pyro4.util.excepthook
        self.server = Pyro4.Proxy("PYRONAME:face_id.server")

    def test(self):
        print(self.server.test_server())


def server_start():
    Pyro4.Daemon.serveSimple(
        {
            FaceIDServer: "face_id.server"
        },
        ns=True)


def client_test():
    client = FaceIDClient()
    client.test()

Также эти процессы, которые запускаютсяиспользовать намного больше процессорного процента, чем это делает скрипт при запуске через python.Если я смотрю монитор активности или 'top -u', я вижу, что новый процесс запускается каждые пару секунд.Эти проблемы усугубляются, когда я использую полный код приложения вместо этого простого примера.

Кроме того, да, я использую новейший pyinstaller, я пытался заморозить многопроцессорность, сервер имен работает правильно, нонезависимо от того, что я делаю, эта проблема сохраняется.

...