2011-08-02 3 views
0

Je suis en train de démarrer un serveur web.py en utilisant ce code:Odd TypeError avec processus multi Python Module

if __name__ == "__main__": 
    p = Process(target=app.run) #starts the web.py server 
    p.start() 
    main() #starts a main listening loop for errors, testing and logging 
    p.join() 

app = web.application(urls, globals()) #part of the web.py framework... starts the REST server 

Mais je reçois cette exception:

Traceback (most recent call last): 
File "apitest.py", line 90, in <module> 
p = Process(target=app.run) 
TypeError: this constructor takes no arguments 

J'ai toujours recherché sur Google mais je n'arrive pas à trouver ce qui se passe ... quelqu'un peut-il m'aider?

Merci!

+3

Conflit d'espace de noms? Vous n'appelez pas le processus que vous pensez être. Essayez d'importer Process en tant que quelque chose d'autre ou dans un autre espace de nom et vous devriez être ok. – agf

+0

Cela a fonctionné parfaitement, merci les deux! – pdeuchler

Répondre

1

Comme suggéré par agf dans les commentaires, vos espaces de noms vont probablement se chevaucher, donc le nom Process n'est pas le Process que vous pensez qu'il est. Pour résoudre ce problème, modifiez la façon dont vous importez Process pour être plus explicite:

import multiprocessing 

# ...all your other code... 

p = multiprocessing.Process(target=app.run) # starts the web.py server