2011-07-24 4 views
3

Je viens d'installer python 3.2.1 (32 bits) et cherrypy 3.2.1 (CherryPy-3.2.1.win32-py3.exe) sur ma boîte de Windows 7 et ont essayé l'exemple hello world (exécutée via PyScripter) mais elle se bloque après le message STARTED du bus Engine.Bonjour monde échoue

Si je tente de démarrer via le python.exe, je reçois le journal suivant:

C:\Program Files (x86)\Python32>python hello.py 
[24/Jul/2011:16:24:03] ENGINE Listening for SIGTERM. 
[24/Jul/2011:16:24:03] ENGINE Bus STARTING 
CherryPy Checker: 
The Application mounted at '' has an empty config. 

[24/Jul/2011:16:24:03] ENGINE Started monitor thread 'Autoreloader'. 
[24/Jul/2011:16:24:03] ENGINE Started monitor thread '_TimeoutMonitor'. 
[24/Jul/2011:16:24:03] ENGINE Serving on 127.0.0.1:8080 
[24/Jul/2011:16:24:03] ENGINE Bus STARTED 
Exception in thread CP Server Thread-4: 
Traceback (most recent call last): 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 693, in read_request_headers 
    read_headers(self.rfile, self.inheaders) 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 202, in read_headers 
    raise ValueError("Illegal end of headers.") 
ValueError: Illegal end of headers. 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 1024, in communicate 
    req.parse_request() 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 578, in parse_request 
    success = self.read_request_headers() 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 696, in read_request_headers 
    self.simple_response("400 Bad Request", ex.args[0]) 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 840, in simple_response 
    status = str(status) 
TypeError: 'tuple' object is not callable 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Python32\lib\threading.py", line 736, in _bootstr 
ap_inner 
    self.run() 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 1174, in run 
    conn.communicate() 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 1080, in communicate 
    req.simple_response("500 Internal Server Error", format_exc()) 
    File "C:\Program Files (x86)\Python32\lib\site-packages\cherrypy\wsgiserver\ws 
giserver3.py", line 840, in simple_response 
    status = str(status) 
TypeError: 'tuple' object is not callable 

Qu'est-ce que je manque?

code:

import cherrypy 

class HelloWorld: 
    def index(self): 
     return "Hello world" 
    index.exposed = True 

cherrypy.quickstart(HelloWorld()) 

EDIT: Bonus-info: Je l'ai essayé différentes choses pour remédier à la situation sans résultat. L'installation de la version 64 bits de python n'a pas aidé car cherrypy ne supporte pas 64 bits (à moins, je me trompe). J'ai essayé de réinstaller les paquets python et cherrypy, et j'ai essayé de désactiver toutes les autres choses qui pourraient le bloquer (IIS). Tous en vain :-(

EDIT2: Deuxième bonus - tout fonctionne si je l'installe avec python 2.7.2, donc il semble que ce n'est qu'un problème avec 3.x (j'ai aussi essayé 3.0.1 - même problème)

Répondre

2

J'ai rencontré deux erreurs:

1 - ouvrez votre navigateur avant de lancer le script, vous aurez donc avoir aucun problème

2 - si vous utilisez un pare-feu ou un. antivirus qui gère la protection HTTP, assurez-vous qu'il ne protège pas le port 8080, par exemple ESET Antivirus ne vous laissera pas utiliser le 8080 et CherryPy dira que le port n'est pas libre.

+0

Puisqu'il fonctionne en python 2.7.2 - aucune suggestion n'est vraie. – Goblin

+0

en python 3, ils ont séparé binaire et texte, c'est pourquoi il y a un problème dans WSGI et python 3, donc je pense que c'est le problème http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface#WSGI_and_Python_3 ne sais pas si ce problème a été résolu, puisque je commence juste en python 3 et internet .... – Abdelouahab

+0

Ahh merci! Cela semble raisonnable - je viens de commencer avec python3 et web aussi :-) J'espère qu'ils seront corrigés car cherrypy est le seul web-module qui tourne actuellement python3.x ... – Goblin