2017-01-26 1 views
0

Je suis en train de commencer avec Bottle framework (en faisant l'exemple Hello World et ensuite de construire une API RESTful). Le problème est le fait que reloader ne fonctionne pas. Quand je fais un changement dans le code et recharge la page où le changement devrait montrer rien ne se passe. Cela fonctionne sur les ordinateurs de mes amis, donc je suis un peu confus.Le rechargement automatique ne fonctionne pas dans Bottle framework

Utilisation de python 2.7.

from bottle import route, run 

@route('/hello') 
def hello(): 
    return "Hello World!" 

run(host='localhost', port=8080, debug=True, reloader =True) 

EDIT: aussi ce que je remarqué est que lorsque j'enregistre le changement dans le script alors que le serveur est toujours à l'écoute je reçois ceci:

---------------------------------------- 
Exception happened during processing of request from ('127.0.0.1', 60472) 
Traceback (most recent call last): 
    File "C:\Python27\lib\SocketServer.py", line 290, in _handle_request_noblock 
    self.process_request(request, client_address) 
    File "C:\Python27\lib\SocketServer.py", line 318, in process_request 
    self.finish_request(request, client_address) 
    File "C:\Python27\lib\SocketServer.py", line 331, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "C:\Python27\lib\SocketServer.py", line 652, in __init__ 
    self.handle() 
    File "C:\Python27\lib\wsgiref\simple_server.py", line 116, in handle 
    self.raw_requestline = self.rfile.readline(65537) 
    File "C:\Python27\lib\socket.py", line 480, in readline 
    data = self._sock.recv(self._rbufsize) 
KeyboardInterrupt 
---------------------------------------- 
+0

Je suis désolé pour le capitaine question évidente, mais avez-vous enregistré le fichier avant de recharger la page? Si oui, voyez-vous le démarrage du [...] serveur Bottle (en utilisant WSGIRefServer()) ... 'dans une console après avoir fait la modification et rafraîchi la page? –

+0

Oui, j'ai sauvé avant de recharger et je vois exactement la même chose dans l'invite de commande que vous venez de dire. – JDoe

+0

Quel est votre système d'exploitation? –

Répondre

3

Il y a an interesting clue si vous utilisez Windows OS:

Gardez à l'esprit que dans les fenêtres ce doit être sous si nom == "principal ": en raison du fonctionnement du module multi-traitement .

Il devrait ressembler à ceci

from bottle import route, run 

@route('/hello') 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    run(host='localhost', port=8080, debug=True, reloader=True) 
+0

Je l'ai comme ça sur l'un des scripts et toujours le même comportement. La chose la plus bizarre, c'est qu'hier j'ai dû aller quelque part et dans un peu de temps libre j'ai essayé de voir si ça ne marche toujours pas et ça a marché, le relooker automatique, je veux dire). Mais maintenant je suis de retour à la maison et j'ai encore essayé et ça ne marche plus (je n'ai pas fait de changement sur le code). Comment est-ce possible? – JDoe