2008-09-22 6 views
16

J'utilise python et CherryPy pour créer un site web interne simple qui utilise environ 2 personnes. J'utilise le serveur web intégré avec CherryPy.quickstart et je n'ai jamais joué avec les fichiers de configuration. J'ai récemment changé de machines, j'ai donc installé les derniers Python et Cherrypy et quand j'exécute le site, je peux y accéder à partir de localhost: 8080 mais pas à travers l'IP ou le nom de la machine Windows. Il peut s'agir d'une différence de configuration de machine ou d'une version plus récente de CherryPy ou de Python. Des idées comment je peux lier à l'adresse IP correcte? Edit: pour être clair, je n'ai actuellement aucun fichier de configuration.Comment configurer l'adresse IP avec CherryPy?

Répondre

15

Cela dépend de la façon dont vous exécutez Cherrypy init.

Si vous utilisez cherrypy 3.1 syntaxe, que Wold faire:

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

Bien sûr, vous pouvez avoir quelque chose de plus de fantaisie, comme le sous-classement de la classe de serveur, ou en utilisant les fichiers de configuration. Ces utilisations sont couvertes par the documentation.

Mais cela devrait suffire. Si ce n'est pas juste dites-nous ce que vous faites et la version cherrypy, et je vais modifier cette réponse.

+1

Je voulais juste la première ligne avant mon appel à cherrypy.quickstart, grâce –

+0

le lien est cassé –

+0

sur "using config files" - notez que 'cherrypy.quickstart (application(), config = configfile)' peut prendre un fichier de configuration optionnel comme deuxième argument (par exemple dans le tuto cherrypy rial c'est tutconf), ce qui pour autant que je sache va remplacer l'ensemble cherrypy.server.socket_host dans le programme –

33
server.socket_host: '0.0.0.0' 

... fonctionnerait également. C'est IPv4 INADDR_ANY, ce qui signifie "écouter sur toutes les interfaces".

Dans un fichier de configuration, la syntaxe est:

[global] 
server.socket_host: '0.0.0.0' 

Dans le code:

cherrypy.server.socket_host = '0.0.0.0' 
+0

Où l'écrivez-vous, dans le code? –

+0

Soit. Edité le ci-dessus pour refléter cela. – 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()) 
Questions connexes