Partage de Queue entre module
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 :
Code:
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 server.py :
Code:
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)) |
le code de client.py :
Code:
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) |
Mais forcément les modules n'arrivent pas à accéder à la queue "enStock"....
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!