2008-09-22 5 views
16

Ich benutze Python und CherryPy, um eine einfache interne Website zu erstellen, die etwa 2 Personen verwenden. Ich benutze den eingebauten Webserver mit CherryPy.quickstart und vermisse nie die Konfigurationsdateien. Ich habe kürzlich Maschinen geändert, also habe ich die neuesten Python und Cherrypy installiert, und wenn ich die Seite ausführe, kann ich von localhost: 8080 darauf zugreifen, aber nicht über die IP oder den Namen der Windows-Maschine. Es könnte sich um einen Unterschied bei der Computerkonfiguration oder eine neuere Version von CherryPy oder Python handeln. Irgendwelche Ideen, wie ich an die richtige IP-Adresse binden kann?Wie konfiguriere ich die IP-Adresse mit CherryPy?

Edit: um es klar zu machen, ich habe derzeit keine Konfigurationsdatei überhaupt.

Antwort

15

Das hängt davon ab, wie Sie die cherrypy init ausführen.

Wenn cherrypy 3.1 Syntax, dass Wold es tun:

cherrypy.server.socket_host = 'www.machinename.com' 
cherrypy.engine.start() 
cherrypy.engine.block() 

Natürlich kann man etwas mehr Phantasie, wie Subklassen die Serverklasse haben kann, oder Konfigurationsdateien verwenden. Diese Anwendungen sind in the documentation behandelt.

Aber das sollte genug sein. Wenn du uns nicht einfach sagst, was du machst und die Version von cherrypy, werde ich diese Antwort bearbeiten.

+1

Ich brauchte nur die erste Zeile vor meinem Anruf cherrypy.quickstart dank –

+0

der Link ist gebrochen –

+0

auf "Verwendung von Konfigurationsdateien" - beachten Sie, dass 'cherrypy.quickstart (application(), config = configfile)' kann eine optionale Konfigurationsdatei als zweites Argument (z. B. in der cherrypy tuto Rial ist Tutconf), die soweit ich weiß die cherrypy.server.socket_host setzen im Programm –

33
server.socket_host: '0.0.0.0' 

... würde auch funktionieren. Das ist IPv4 INADDR_ANY, was "auf alle Schnittstellen hören" bedeutet.

In einer Konfigurationsdatei, die Syntax ist:

[global] 
server.socket_host: '0.0.0.0' 

In Code:

cherrypy.server.socket_host = '0.0.0.0' 
+0

Wo schreibst du das, in den Code? –

+0

Entweder. Bearbeitet das oben, um das zu reflektieren. – fumanchu

4
import cherrypy 

class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.server.socket_host = '0.0.0.0' # put it here 
cherrypy.quickstart(HelloWorld())