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

Déploiement/Installation Python Discussion :

Executer python avec ros


Sujet :

Déploiement/Installation Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 23
    Par défaut Executer python avec ros
    Bonjour à tous !

    j'ai un robot aisoy http://aisoy.com et je souhaiterai exécuter une commande python depuis une page html .

    les fichiers:

    Mon head-left1.py

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/usr/bin/env python
    #include <actuatorSdk.h>
    import os
    os.environ['ROS_DISTRO']='fuerte'
    os.environ['ROSLISP_PACKAGE_DIRECTORY']='/opt/ros/fuerte/share/common-lisp/ros'
    os.environ['ROS_ETC_DIR']='/opt/ros/fuerte/etc/ros'
    os.environ['ROS_IP']='192.168.0.30'
    os.environ['ROS_MASTER_URI']='http://localhost:11311'
    os.environ['ROS_PACKAGE_PATH']='/home/pi/fuerte_workspace/sandbox'
    os.environ['ROS_PACKAGE_PATH']='/opt/ros/fuerte/stacks'
    os.environ['ROS_PACKAGE_PATH']='opt/ros/fuerte/share'
    os.environ['ROS_PACKAGE_PATH']='/opt/ros/fuerte/share/ros'
    os.environ['ROS_ROOT']='/opt/ros/fuerte/share/ros'
    os.environ['ROS_WORKSPACE']='/home/pi/fuerte_workspace'
    os.environ['ROS_PACKAGE_PATH']='opt/ros/fuerte/lib/python2.7/dist-packages'
     
     
    import roslib; roslib.load_manifest('aisoy_sdk_actuator')
    roslib.load_manifest('aisoy_common')
     
     
    from libaisoy_sdk_actuator import *
    from libaisoy_common import * 
     
    virtual = Actuator()
    actuator = Actuator()
    actuator. moveServoRelative(Servo.HeadHorizontal, 0.2)
    Mon fichier html:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
     
     
     
    </head>
    <body>
     
    	<form action="http://192.168.0.30/py/head-left1.py" method="post">
      <input name="send" value="executer" type="submit">
    </form>
     
    </body>
    </html>
    Mon error apache2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     tail -f /var/log/apache2/error.log
    Traceback (most recent call last):
      File "/usr/lib/cgi-bin/head-left1.py", line 18, in <module>
        import roslib; roslib.load_manifest('aisoy_sdk_actuator')
    ImportError: No module named roslib
    [Thu Jan 23 18:54:16 2014] [error] [client 192.168.0.10] Premature end of script headers: head-left1.py, referer: http://192.168.0.30/aisoy/aisoyv1v333.html
    Traceback (most recent call last):
      File "/usr/lib/cgi-bin/head-left1.py", line 18, in <module>
        import roslib; roslib.load_manifest('aisoy_sdk_actuator')
    ImportError: No module named roslib
    [Thu Jan 23 18:54:25 2014] [error] [client 192.168.0.10] Premature end of script headers: head-left1.py, referer: http://192.168.0.30/aisoy/aisoyv1v333.html

    Mon envvars (apache2)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    # envvars - default environment variables for apache2ctl
     
    # this won't be correct after changing uid
    unset HOME
     
    # for supporting multiple apache2 instances
    if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
    	SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}"
    else
    	SUFFIX=
    fi
     
    # Since there is no sane way to get the parsed apache2 config in scripts, some
    # settings are defined via environment variables and then used in apache2ctl,
    # /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
    export APACHE_RUN_USER=www-data
    export APACHE_RUN_GROUP=www-data
    export APACHE_PID_FILE=/var/run/apache2$SUFFIX.pid
    export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
    export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX
    export ROSLISP_PACKAGE_DIRECTORY=/opt/ros/fuerte/share/common-lisp/ros
    export ROS_DISTRO=fuerte
    export ROS_ETC_DIR=/opt/ros/fuerte/etc/ros
    export ROS_IP=192.168.0.30
    export ROS_MASTER_URI=http://localhost:11311
    export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace/sandbox
    export ROS_PACKAGE_PATH=/opt/ros/fuerte/stacks
    export ROS_PACKAGE_PATH=/opt/ros/fuerte/share
    export ROS_PACKAGE_PATH=/opt/ros/fuerte/share/ros
    export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace
    export ROS_ROOT=/opt/ros/fuerte/share/ros
    export ROS_WORKSPACE=/home/pi/fuerte_workspace
    export PYTHONPATH=http://192.168.0.30/py/head-left1.py
    export PYTHONPATH=/opt/ros/fuerte/lib/python2.7/dist-packages
     
     
    # Only /var/log/apache2 is handled by /etc/logrotate.d/apache2.
    export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
     
    ## The locale used by some modules like mod_dav
    export LANG=C
    ## Uncomment the following line to use the system default locale instead:
    #. /etc/default/locale
     
    export LANG
     
    ## The command to get the status for 'apache2ctl status'.
    ## Some packages providing 'www-browser' need '--dump' instead of '-dump'.
    #export APACHE_LYNX='www-browser -dump'
     
    ## If you need a higher file descriptor limit, uncomment and adjust the
    ## following line (default is 8192):
    #APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'
     
     
    ## If you would like to pass arguments to the web server, add them below
    ## to the APACHE_ARGUMENTS environment.
    #export APACHE_ARGUMENTS=''
    #export ROSLISP_PACKAGE_DIRECTORY="/opt/ros/fuerte/share/common-lisp/ros"
    #export ROS_DISTRO="fuerte"
    #export ROS_ETC_DIR="/opt/ros/fuerte/etc/ros"
    #export ROS_IP="192.168.0.22"
    #export ROS_MASTER_URI="http://localhost:11311"
    #export ROS_PACKAGE_PATH="/home/pi/fuerte_workspace/sandbox:/opt/ros/fuerte/stacks:/opt/ros/fuerte/share:/opt/ros/fuerte/share/ros"
    #export ROS_ROOT="/opt/ros/fuerte/share/ros"
    #export ROS_WORKSPACE="/home/pi/fuerte_workspace"
    export ROSLISP_PACKAGE_DIRECTORY=/opt/ros/fuerte/share/common-lisp/ros
    export ROS_DISTRO=fuerte
    export ROS_ETC_DIR=/opt/ros/fuerte/etc/ros
    export ROS_IP=192.168.0.30
    export ROS_MASTER_URI=http://localhost:11311
    export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace/sandbox
    export ROS_PACKAGE_PATH=/opt/ros/fuerte/stacks
    export ROS_PACKAGE_PATH=/opt/ros/fuerte/share
    export ROS_PACKAGE_PATH=/opt/ros/fuerte/share/ros
    export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace
    export ROS_ROOT=/opt/ros/fuerte/share/ros
    export ROS_WORKSPACE=/home/pi/fuerte_workspace
    export PYTHONPATH=http://192.168.0.30/py/head-left1.py
    export PYTHONPATH=/opt/ros/fuerte/lib/python2.7/dist-packages
    J'ai essayé avec des fichiers de test python ca marche, mais pas avec celui ci (erreur 500).

    j'ai effectué la commande suivante pour les info sur ros:

    export | grep ROS

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Le import roslib dans head-left1.py se vautre avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImportError: No module named roslib
    C'est comme si vous n'aviez pas installe la biblio. "dans" l’interpréteur Python active par Apache ou oublie de définir des variables environnements permettant a import de se terminer sans erreur.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 23
    Par défaut
    Bonjour wiztricks,

    Merci de votre réponse.

    Comment régler le problème ? le lien entre python et ros pose problème ?

    On ma suggérer un autre python: (mais avec toujours l'erreur 500)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #!/usr/bin/env python
    #include <actuatorSdk.h>
    import os
    sys.path.append['ROS_DISTRO']='fuerte'
    sys.path.append['ROSLISP_PACKAGE_DIRECTORY']='/opt/ros/fuerte/share/common-lisp/ros'
    sys.path.append['ROSLISP_PACKAGE_DIRECTORY']='/opt/ros/fuerte/share/common-lisp/ros'
    sys.path.append['ROS_ETC_DIR']='/opt/ros/fuerte/etc/ros'
    sys.path.append['ROS_IP']='192.168.0.30'
    sys.path.append['ROS_MASTER_URI']='http://localhost:11311'
    sys.path.append['ROS_PACKAGE_PATH']='/home/pi/fuerte_workspace/sandbox'
    sys.path.append['ROS_PACKAGE_PATH']='/opt/ros/fuerte/stacks'
    sys.path.append['ROS_PACKAGE_PATH']='opt/ros/fuerte/share'
    sys.path.append['ROS_PACKAGE_PATH']='/opt/ros/fuerte/share/ros'
    sys.path.append['ROS_ROOT']='/opt/ros/fuerte/share/ros'
    sys.path.append['ROS_WORKSPACE']='/home/pi/fuerte_workspace'
    sys.path.append['ROS_PACKAGE_PATH']='opt/ros/fuerte/lib/python2.7/dist-packages'
     
     
    import roslib; roslib.load_manifest('aisoy_sdk_actuator')
    roslib.load_manifest('aisoy_common')
     
     
    from libaisoy_sdk_actuator import *
    from libaisoy_common import * 
     
    virtual = Actuator()
    actuator = Actuator()
    actuator. moveServoRelative(Servo.HeadHorizontal, 0.2)

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 23
    Par défaut
    Re,

    mon export | grep ROS


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     export | grep ROS
    declare -x ROSLISP_PACKAGE_DIRECTORY="/opt/ros/fuerte/share/common-lisp/ros"
    declare -x ROS_DISTRO="fuerte"
    declare -x ROS_ETC_DIR="/opt/ros/fuerte/etc/ros"
    declare -x ROS_IP="192.168.0.30"
    declare -x ROS_MASTER_URI="http://localhost:11311"
    declare -x ROS_PACKAGE_PATH="/home/pi/fuerte_workspace/airos2:/home/pi/fuerte_workspace/sandbox:/opt/ros/fuerte/stacks:/opt/ros/fuerte/share:/opt/ros/fuerte/share/ros"
    declare -x ROS_ROOT="/opt/ros/fuerte/share/ros"
    declare -x ROS_WORKSPACE="/home/pi/fuerte_workspace"

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 23
    Par défaut
    up

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par sigis Voir le message
    up
    No idea

    Si vous n'avez pas plusieurs versions de Python installées et que l'import "fonctionne" hors Apache, c'est qu'il manque un truc dans l'initialisation de l'environnement lance par Apache.

    Il faut reprendre la documentation du module, vérifier que vous n'avez rien oublie, ...
    Vous pouvez cherchez sur Google des cas semblables, postez la question dans les forums "ros", ...
    De mon cote, je ne peux pas aider plus (installer Apache, ros,... c'est du boulot).
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [execution python] commande inconnue
    Par airod dans le forum Général Python
    Réponses: 2
    Dernier message: 09/02/2006, 15h55
  2. Installer Python avec Apache
    Par vincent_nk dans le forum Déploiement/Installation
    Réponses: 8
    Dernier message: 28/01/2006, 18h21
  3. Execution script avec option sur OVH
    Par guepe dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 15/01/2006, 15h54
  4. Execution formulaire avec une variable
    Par dsj dans le forum Access
    Réponses: 9
    Dernier message: 08/09/2005, 19h46
  5. Exécutable Java avec JRE intégré
    Par clawhammer dans le forum JBuilder
    Réponses: 2
    Dernier message: 06/10/2003, 16h26

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