ich versuche den beiden klassen Programm und Datentransfer die beiden pfade speicherort und path_grund zu übergeben...
Soll heißen:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Tkinter
import os
import socket
import SocketServer
import threading
import json
class Datentransfer(SocketServer.BaseRequestHandler):
def __init__(self,speicherort,path_grund):
self.speicherort = speicherort
self.path_grund = path_grund
def handle(self):
#--> Wie kann ich speicherort und path_grund hier her übergeben? :(
print speicherort
print path_grund
#------------------
class Programm():
def __init__(self,speicherort,path_grund):
self.speicherort = speicherort
self.path_grund = path_grund
def main(self):
backwin = Tkinter.Tk()
backwin.title('DMD-DATA.soft')
backwin.state('zoomed')
backwin.configure(background='black')
get_IP = [TCP_IP for TCP_IP in socket.gethostbyname_ex(socket.gethostname())[2] if not TCP_IP.startswith("127.")][:1]
if TCP_IP.startswith("127."):
print "Kein W-LAN"
else:
TCP_PORT = 9090
server = SocketServer.TCPServer((TCP_IP, TCP_PORT), lambda:Datentransfer(speicherort,path_grund))
thread = threading.Thread(target=server.serve_forever)
thread.start()
def quit(backwin=None):
try:
server.shutdown()
server.server_close()
except:
pass
backwin.destroy()
b2 = Tkinter.Button(backwin, text=("\nBEENDEN\n"), justify='center',command=lambda:quit(backwin))
b2.place(relx=.495, rely=.6, anchor="c")
backwin.protocol("WM_DELETE_WINDOW", quit)
backwin.mainloop()
if __name__ == '__main__':
speicherort = os.environ['PROGRAMDATA']
path_grund = speicherort+'\\DMD-Data.soft\\SYSTEM'
datentransfer = Datentransfer(speicherort,path_grund)
mat_zeit = Programm(speicherort,path_grund)
mat_zeit.main()
datentransfer wird in einem threading.Thread übergeben, in dem im vollen programmcode dann auch der händler vorhanden ist (hab ich hier jetzt
mal weggelassen). könnte mir vielleicht jemand helfen, die beiden pfade an beide klassen zu übergeben? bin mittlerweile kurz vorm aufgeben
![Sad :(](./images/smilies/icon_sad.gif)
ich erhalte immer den fehler:
Code: Alles auswählen
Exception happened during processing of request from ('10.17.11.44', 52768)
Traceback (most recent call last):
File "C:\Python27\Lib\SocketServer.py", line 295, in _handle_request_noblock
self.process_request(request, client_address)
File "C:\Python27\Lib\SocketServer.py", line 321, in process_request
self.finish_request(request, client_address)
File "C:\Python27\Lib\SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
TypeError: <lambda>() takes no arguments (3 given)
----------------------------------------