IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

serveur cherrypy et page visible sur tout le net


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut serveur cherrypy et page visible sur tout le net
    Bonjour,

    Dans son livre Gérard Swinnen donne le fichier tutoriel.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [global]
    server.socket_host = "127.0.0.1"
    server.socket_port = 8080
    server.thread_pool = 5
    tools.sessions.on = True
    tools.encode.encoding = "Utf-8"
    [/annexes]
    tools.staticdir.on = True
    tools.staticdir.dir = "annexes"
    et aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import cherrypy
     
    class MonSiteWeb(object):
        # Classe produisant des objets gestionnaires de requêtes HTTP."
     
        def index(self):
            return "<h1>Bonjour Ã* tous !</h1>"
     
        index.exposed = True
     
    cherrypy.quickstart(MonSiteWeb(), config ="tutoriel.conf")
    Je le lance sans problème et je peux accéder à ma page web depuis le même ordi avec http://localhost:8080

    Maintenant, je voudrais y accéder depuis un autre ordinateur et je n'y arrive pas.


    J'ai remplacé dans le fichier tutoriel.config "127.0.0.1" par mon adresse IP et j'obitiens ce genre d'erreur:
    >pythonw -u "site_web_01.py"
    ('cherrypy.__version__ :', '3.2.4')
    ('cherrypy.__file__ :', 'C:\\Python27\\lib\\site-packages\\cherrypy-3.2.4-py2.7.egg\\cherrypy\\__init__.pyc')
    [16/Feb/2014:15:36:07] ENGINE Listening for SIGTERM.
    [16/Feb/2014:15:36:07] ENGINE Bus STARTING
    CherryPy Checker:
    dir is a relative path and no root provided.
    section: [/annexes]
    root: None
    dir: 'annexes'

    [16/Feb/2014:15:36:07] ENGINE Started monitor thread '_TimeoutMonitor'.
    [16/Feb/2014:15:36:07] ENGINE Started monitor thread 'Autoreloader'.
    [16/Feb/2014:15:36:12] ENGINE Error in 'start' listener <bound method Server.start of <cherrypy._cpserver.Server object at 0x027098F0>>
    Traceback (most recent call last):
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\process\wspbus.py", line 197, in publish
    output.append(listener(*args, **kwargs))
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\_cpserver.py", line 151, in start
    ServerAdapter.start(self)
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\process\servers.py", line 168, in start
    wait_for_free_port(*self.bind_addr)
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\process\servers.py", line 412, in wait_for_free_port
    raise IOError("Port %r not free on %r" % (port, host))
    IOError: Port 80 not free on '86.204.242.51'

    [16/Feb/2014:15:36:12] ENGINE Shutting down due to error in start listener:
    Traceback (most recent call last):
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\process\wspbus.py", line 235, in start
    self.publish('start')
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\process\wspbus.py", line 215, in publish
    raise exc
    ChannelFailures: IOError("Port 80 not free on '86.204.242.51'",)

    [16/Feb/2014:15:36:12] ENGINE Bus STOPPING
    [16/Feb/2014:15:36:12] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('86.204.242.51', 80)) already shut down
    [16/Feb/2014:15:36:12] ENGINE Stopped thread 'Autoreloader'.
    [16/Feb/2014:15:36:12] ENGINE Stopped thread '_TimeoutMonitor'.
    [16/Feb/2014:15:36:12] ENGINE Bus STOPPED
    [16/Feb/2014:15:36:12] ENGINE Bus EXITING
    [16/Feb/2014:15:36:12] ENGINE Bus EXITED
    >Exit code: 70

    S'agit t'il bien de monadresse IP que je dois mettre? (celle sur internet ou celle en local)
    Je pense aussi qu'il peut s'agir d'un problème de port et que celui-ci varie régulièrement...

    Avez-vous une explication?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Le message d'erreur ChannelFailures: IOError("Port 80 not free on '86.204.242.51'",) indique que le port 80 est déjà occupe.
    Par quoi? C'est votre ordi.!
    Seul vous êtes en mesure de regarder, diagnostiquer,... par quels programmes sont utilises les ports réseaux de votre machine. La casquette de "programmeur Python" ne sert a rien pour aborder ces sujets la, il faut avoir celle d'administrateur réseau et système.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    voici une autre message d'erreur. Cette fois ci le port est libre mais le socket n'est pas créé...

    'cherrypy.__version__ :', '3.2.4')
    ('cherrypy.__file__ :', 'C:\\Python27\\lib\\site-packages\\cherrypy-3.2.4-py2.7.egg\\cherrypy\\__init__.pyc')
    [16/Feb/2014:18:16:49] ENGINE Listening for SIGTERM.
    [16/Feb/2014:18:16:49] ENGINE Bus STARTING
    CherryPy Checker:
    dir is a relative path and no root provided.
    section: [/annexes]
    root: None
    dir: 'annexes'

    [16/Feb/2014:18:16:49] ENGINE Started monitor thread '_TimeoutMonitor'.
    [16/Feb/2014:18:16:49] ENGINE Started monitor thread 'Autoreloader'.
    [16/Feb/2014:18:16:49] ENGINE Error in HTTP server: shutting down
    Traceback (most recent call last):
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\process\servers.py", line 188, in _start_http_thread
    self.httpserver.start()
    File "C:\Python27\lib\site-packages\cherrypy-3.2.4-py2.7.egg\cherrypy\wsgiserver\wsgiserver2.py", line 1844, in start
    raise socket.error(msg)
    error: No socket could be created

    [16/Feb/2014:18:16:49] ENGINE Bus STOPPING
    [16/Feb/2014:18:16:49] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('86.204.242.51', 12344)) already shut down
    [16/Feb/2014:18:16:49] ENGINE Stopped thread 'Autoreloader'.
    [16/Feb/2014:18:16:49] ENGINE Stopped thread '_TimeoutMonitor'.
    [16/Feb/2014:18:16:49] ENGINE Bus STOPPED
    [16/Feb/2014:18:16:49] ENGINE Bus EXITING
    [16/Feb/2014:18:16:49] ENGINE Bus EXITED
    >Exit code: 70

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Je ne sais pas: ça fonctionne tout seul.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    python tut01_helloworld.py
    [16/Feb/2014:19:52:52] ENGINE Listening for SIGHUP.
    [16/Feb/2014:19:52:52] ENGINE Listening for SIGTERM.
    [16/Feb/2014:19:52:52] ENGINE Listening for SIGUSR1.
    [16/Feb/2014:19:52:52] ENGINE Bus STARTING
    [16/Feb/2014:19:52:52] ENGINE Started monitor thread 'Autoreloader'.
    [16/Feb/2014:19:52:52] ENGINE Started monitor thread '_TimeoutMonitor'.
    [16/Feb/2014:19:52:52] ENGINE Serving on 192.168.56.102:8080
    [16/Feb/2014:19:52:52] ENGINE Bus STARTED
    192.168.56.101 - - [16/Feb/2014:19:53:54] "GET / HTTP/1.1" 200 12 "" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0"
    192.168.56.101 - - [16/Feb/2014:19:53:54] "GET /favicon.ico HTTP/1.1" 200 1406 "" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0"
    Mon fichier de config est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [global]
    server.socket_host = "192.168.56.102"
    server.socket_port = 8080
    server.thread_pool = 10
    Vous pouvez noter dans la trace que j'y accède depuis le HOST: 192.168.56.101.
    Et que mes deux OS tournent Linux.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    en fait, je m'aperçois que si je ferme complétement la session et la rouvre, cela fonctionne. Y a til une manip a effectuer pour arrêter le serveur précédemment lancé?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Chris33 Voir le message
    en fait, je m'aperçois que si je ferme complétement la session et la rouvre, cela fonctionne. Y a til une manip a effectuer pour arrêter le serveur précédemment lancé?
    Tout dépend de "comment" vous avez lance le "serveur" et comme je ne suis pas derrière vous...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Je programme à l'aide de SCITE. Ces mini programmes ne sont fait que dans le but de me former et je les les lance uniquement en appuyant sur la touche F5. Pour arrêter le serveur, j'utilise dans un de ces scripts une méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def shutdown(self):  
    	cherrypy.engine.exit()
    Souvent cependant, je referme le navigateur sans avoir utilisé cette méthode et alors je m'aperçois que le serveur est tjrs en action. Il n'apparaît même pas dans le gestionnaire des taches de Windows. Comment le couper?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Un programme lance par l'IDE sera sous le contrôle de l'IDE.
    Normalement, il faut appuyer sur le gros bouton rouge ;-)
    Et si vous ne le trouvez pas ou qu'il ne fonctionne pas, vous pouvez toujours lancer le programme "depuis la console".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Merci pour la réponse. Par contre je lance mon programme avec SCITE et je ne vois pas comment procéder pour arrêter le serveur. Il y a bien une 'option STOP EXECUTING' mais qui n'est pas toujours active. Je suis également surpris de ne pas retrouver le programme ou le processus dans le 'GESTIONNAIRE DES TACHES" de Windows.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Il vous reste a le lancer via la console.

    N'oubliez pas non plus que le port restera en TIMED_WAIT pendant un certain temps.
    Impossible ré-démarrer sans un socket SO_REUSEADDR avant le timeout.
    Regardez la sortie de "netstat | grep <port>" pour voir l’état des connexions réseau.

    Un minimum de savoir faire cote administration système et réseau est indispensable pour jouer avec ces engins la.
    Les tutos ne font que montrer combien Python vous permet d’accéder simplement a ces mondes la, mais y aller en "touriste" c'est faire n'importe quoi et tomber dans des pièges,... qui n'ont rien a voir avec la "programmation".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [WD-2007] Pied de page identique sur toutes les pages d'un modele word
    Par cocolemee dans le forum Word
    Réponses: 1
    Dernier message: 19/10/2014, 22h20
  2. En-tête sur première page, pied sur toutes les pages.
    Par Frero67 dans le forum Mise en forme
    Réponses: 15
    Dernier message: 30/05/2014, 08h33
  3. Réponses: 6
    Dernier message: 14/03/2014, 11h03
  4. [Etat] Valeurs non visibles sur toutes les pages
    Par wperezrobles dans le forum IHM
    Réponses: 6
    Dernier message: 17/10/2006, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo