Bonsoir à tous,
Je suis face à un problème épineux pour moi, mais je pense que je loupe simplement quelque chose et je souhaitez avoir votre aide.
J'ai un programme organisé entre plusieurs module et j'aimerais avoir une queue qui les relis.
l'arborescence de mon projet est la suivante :
/game/
-------/__init__.py
-------/server.py
-------/client.py
prog.py
le code de prog.py :
le code de server.py :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #!/usr/bin/env python # -*- coding: utf-8 -*- import random,time,threading try: import Queue except ImportError: import queue as Queue from game import server,client enStock = Queue.Queue(0) server.Server().start() for i in range(3): client.Client().start() try: time.sleep(30) except (KeyboardInterrupt, SystemExit): pass
le code de client.py :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/usr/bin/env python # -*- coding: utf-8 -*- import time,threading try: import Queue except ImportError: import queue as Queue class Server(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.daemon = True def run(self): while True: print(enStock.get(True))
Mais forcément les modules n'arrivent pas à accéder à la queue "enStock"....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/usr/bin/env python # -*- coding: utf-8 -*- import time,threading try: import Queue except ImportError: import queue as Queue class Client(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.daemon = True def run(self): while True: enStock.put('test',True,None) time.sleep(1)
J'ai essayer de le mettre dans le __init__.py, de faire "global enStock" , de faire plusieurs déclarations, d'y accéder en tant que attribut du module, mais rien n'y fait, je ne trouve pas comment faire :/
Quelqu'un aurez une idée comment je pourrais résoudre ça ?
Merci d'avance!
Partager