Le module de multitraitement dans Python 3.2.1 sur Windows 7 x86 semble me vaincre.multiprocessing ne pas engendrer de nouveaux processus
J'ai deux modules: servmain.py et sslserver.py. L'idée est de (éventuellement) coder une application qui communiquera avec les clients utilisant SSL. C'est la partie que j'ai déjà en bas. Cependant, j'ai besoin que l'écouteur du serveur soit séparé dans son propre processus afin que le processus principal puisse faire d'autres choses. En tant que test fictif, j'ai demandé au processus fils d'imprimer "Hello World" sur stdout et d'écrire du texte dans un fichier texte inexistant.
Voici le code de mon processus parent (servmain.py):
from multiprocessing import Process
import logging
if __name__ == "__main__":
logger = multiprocessing.log_to_stderr()
logger.setLevel(logging.DEBUG)
#Fire up the server
listenerProcess = Process(target = sslserver.startServer)
listenerProcess.start()
logger.debug("Starting listener.")
listenerProcess.join()
logger.debug("Done.")
Et voici le code sslserver.py:
def startServer():
print("Hello World")
f= open("testfile.txt", "w")
f.write("Hello world\n")
f.close()
Quand je lance servmain.py, je reçois la sortie suivante:
[DEBUG/MainProcess] Démarrage du programme d'écoute. [DEBUG/MainProcess] Terminé.
Ce qui est ce que je m'attendrais. Cependant, testfile.txt n'a pas été créé et il n'y a pas de sortie sur stdout. Est-ce que quelqu'un a une idée de pourquoi cela pourrait se produire?
Juste pour vous assurer, vous avez réellement fait 'multiprocessing' importation et' importation sslserver' , pour que votre code fonctionne réellement comme vous le dites? ('logger = multiprocessing.log_to_stderr()' et 'listenerProcess = Processus (target = sslserver.startServer)' ) – agf
Oui, les importations sont en place; le code s'exécute sans erreurs d'importation. – wibarr
Êtes-vous sûr d'écrire dans un répertoire pour lequel vous avez l'autorisation d'écrire? Pouvez-vous essayer de définir explicitement le chemin de 'testfile.txt' dans un répertoire dont vous êtes sûr à 100% qu'il est accessible en écriture? –