По отдельности работают, а вместе не хотят.
#---------------------------- import socket import threading import tempfile import win32api import win32print import wx.adv import wx TRAY_TOOLTIP = 'Name' TRAY_ICON = 'icon.png' def create_menu_item(menu, label, func): item = wx.MenuItem(menu, -1, label) menu.Bind(wx.EVT_MENU, func, id=item.GetId()) menu.Append(item) return item class TaskBarIcon(wx.adv.TaskBarIcon): def __init__(self, frame): self.frame = frame super(TaskBarIcon, self).__init__() self.set_icon(TRAY_ICON) self.Bind(wx.adv.EVT_TASKBAR_LEFT_DOWN, self.on_left_down) def CreatePopupMenu(self): menu = wx.Menu() create_menu_item(menu, 'Site', self.on_hello) menu.AppendSeparator() create_menu_item(menu, 'Exit', self.on_exit) return menu def set_icon(self, path): icon = wx.Icon(path) self.SetIcon(icon, TRAY_TOOLTIP) def on_left_down(self, event): print ('Tray icon was left-clicked.') def on_hello(self, event): print ('Hello, world!') def on_exit(self, event): wx.CallAfter(self.Destroy) self.frame.Close() class App(wx.App): def OnInit(self): frame=wx.Frame(None) self.SetTopWindow(frame) TaskBarIcon(frame) return True def main(): app = App(False) app.MainLoop() if __name__ == '__main__': main() bind_ip = "127.0.0.1" bind_port = 9999 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((bind_ip,bind_port)) server.listen(5) print ('[*] Listening on %s:%d' % (bind_ip,bind_port)) # this is our client-handling thread def handle_client(client_socket): # print out what the client sends request = client_socket.recv(1024) print ("[*] Received: %s" % request) # send back a packet client_socket.send("ACK!") client_socket.close() while True: client,addr = server.accept() data = client.recv(1024).decode() print(data) print ("[*] Accepted connection from: %s:%d" % (addr[0],addr[1])) txtprint = str(data) print(txtprint) filename = tempfile.mktemp (".txt") print(txtprint) open (filename, "w").write (txtprint) win32api.ShellExecute ( 0, "printto", filename, '"%s"' % win32print.GetDefaultPrinter (), ".", 0 ) # spin up our client thread to handle incoming data client_handler = threading.Thread(target=handle_client,args=(client,)) client_handler.start() #------------------------------