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 :

installation d'un script python sous Linux/Mac OS


Sujet :

Python

  1. #1
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut installation d'un script python sous Linux/Mac OS
    Bonjour,

    Voilà j'ai un script que j'utilise assez souvent via ma console et je souhaiterai pouvoir installer ce script dans mon système dans devoir à chaque fois copier mon script et taper la commande :

    j'ai déjà vu des gens proposer d'installer leur code python pour ensuite l'utiliser juste en tapant dans le terminal une commande qu'ils choisissent d'affecter à leur code.

    ils utilisent la commande suivant pour l'installer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python setup.py install
    qui peux m'aider sur ce que doit contenir le setup.py ?

    Est ce que ce fichier possède une architecture prédéfinie ?

    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Je suis dans le même cas que toi.
    Pour le lancer très régulièrement, j'ai installé spyder (pour pyton 2.7 et pour python 3).
    Au démarrage du pc, je lance spyder qui s'ouvre à tous les fichiers présents lors de la fermeture.
    Je n'ai qu'à taper F5 pour lancer mon script lorsque j'en ai envie.
    Pas d'aide par mp.

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,


    Très simple, tu t'assures que la première ligne du script soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #! /usr/bin/python
    tu supprimes l'extension .py, tu le rend exécutable (clic droit, propriétés) et tu le copies dans /usr/bin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ sudo cp monFichier /usr/bin
    et puis tu testes

  4. #4
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    A la bonne heure : le bon sens belge (c'est du premier degré, je pense ce que j'écris, je suis à moitié belge) !

    Seul bémol :

    Citation Envoyé par VinsS Voir le message
    ... et tu le copies dans /usr/bin
    J'ai peur qu'en suivant ce conseil, /usr/bin ne devienne un horrible champ de bataille (et, en plus, cela nécessite d'avoir des droits d'administrateurs, ce n'est pas toujours le cas).

    Il faut , aussi, rendre le dit-script exécutable (chmod a+x monFichier.py), le mettre dans un endroit (répertoire) raisonnable* et basta !

    EDIT * : c'est à dire un répertoire déjà contenu dans le PATH ou mettre à jour la variable d'environnement PATH avec un répertoire où l'on stockera les scripts Python (ou autres)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Oui, c'est vrai que j'ai donné une réponse spécifique à Debian où le dossier /usr/local est ignoré alors que dans d'autres distributions il est de rigueur.

    Cela dit, mon /usr/bin contient actuellement 2277 exécutables et seulement trois installés par moi-même.

  6. #6
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Je suis dans le même cas que toi.
    Pour le lancer très régulièrement, j'ai installé spyder (pour pyton 2.7 et pour python 3).
    Au démarrage du pc, je lance spyder qui s'ouvre à tous les fichiers présents lors de la fermeture.
    Je n'ai qu'à taper F5 pour lancer mon script lorsque j'en ai envie.
    Merci pour ta réponse.

    J'ai également spyder, mais je l'utilise pas trop souvent, juste pour faire des tests.

    Je travail sous Mac OSX le plus souvent et avec le terminal. Du coup ta solution ne m'arrange pas trop surtout que certains de mes programmes font intervenir des barres de progressions qui fonctionne très mal sous un IDLE quelqu'il soit (Spyder ou autre).

    Encore merci pour ta réponse

  7. #7
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Mac OS X ? c'est mon environnement quotidien. Les fameuses barres de progression sortent d'où ?
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  8. #8
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par plxpy Voir le message
    A la bonne heure : le bon sens belge (c'est du premier degré, je pense ce que j'écris, je suis à moitié belge) !

    Seul bémol :



    J'ai peur qu'en suivant ce conseil, /usr/bin ne devienne un horrible champ de bataille (et, en plus, cela nécessite d'avoir des droits d'administrateurs, ce n'est pas toujours le cas).

    Il faut , aussi, rendre le dit-script exécutable (chmod a+x monFichier.py), le mettre dans un endroit (répertoire) raisonnable* et basta !

    EDIT * : c'est à dire un répertoire déjà contenu dans le PATH ou mettre à jour la variable d'environnement PATH avec un répertoire où l'on stockera les scripts Python (ou autres)
    Est ce que la commande python setup.py install ne revient elle pas à faire cela ?

    Le but finale est que je puisse également fournir mon code à des tiers personnes qui pourront également l'utiliser de manière simple et sans commencer à rentrer par eux même dans le PATH etc .... Un simple python setup.py et voilà c'est fait

    PS : je suis tombé sur cette vidéo mais à la fin j'ai l'impression qu'il doit encore taper python monfichier.py pour le lancer et non pas monfichier tout simplement.


  9. #9
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,


    Très simple, tu t'assures que la première ligne du script soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #! /usr/bin/python
    tu supprimes l'extension .py, tu le rend exécutable (clic droit, propriétés) et tu le copies dans /usr/bin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ sudo cp monFichier /usr/bin
    et puis tu testes
    Cela marche effectivement très bien !
    Pas d'aide par mp.

  10. #10
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Cela marche effectivement très bien !
    Sur Mac OSX apparement jai un soucis avec cette méthode

    il me dit : bash: /Users/nekcorp/bin/Script_Python/boolean: /usr/bin/python^M: bad interpreter: No such file or directory

    j'ai regardé dans /usr/bin et j'ai pas python, j'ai python2.7 mais là aussi même message

    une idée ?

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Les deux caractères qui suivent python ^M représente le séparateur de ligne, il faut paramétrer ton éditeur pour un formatage Unix.

  12. #12
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par plxpy Voir le message
    Mac OS X ? c'est mon environnement quotidien. Les fameuses barres de progression sortent d'où ?
    Dans mon code python. Le programme me permet de travailler sur des gros fichiers txt et la barre de progression permet de visualiser l'avancement des différentes taches que le programme réalise.

  13. #13
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    voilà ce que j'ai comme erreur en retour lorsque je tape boolean après avoir mit le fichier dans un répertoire déclaré dans mon path

    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
    /Users/nekcorp/bin/Script_Python/boolean.py: line 23: import: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 24: import: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 27: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 28: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 29: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 30: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 31: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 32: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 33: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 34: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 35: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 36: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 37: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 38: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 39: print: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 41: Name_of_the_bulk_file: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 42: File_containing_nodes_to_be_removed: command not found
    /Users/nekcorp/bin/Script_Python/boolean.py: line 45: syntax error near unexpected token `('
    /Users/nekcorp/bin/Script_Python/boolean.py: line 45: `Original_File = open (Name_of_the_bulk_file,'r') 
    # File to be modified'
    J'ai l'impression qu'il en reconnait pas le python


    Voici le début de mon code :

    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
    #----------------------------------------------------------ENCODING------------------------------------------------------#
    # -*- coding: utf-8 -*-
    #------------------------------------------------------------------------------------------------------------------------#
    #! /usr/bin/python
    #----------------------------------------------------------LICENSE-------------------------------------------------------#
    #Copyright (C) <2014> <Nekcorp>
     
    #This program is free software; you can redistribute it and/or
    #modify it under the terms of the GNU Lesser General Public
    #License as published by the Free Software Foundation; either
    #version 2.1 of the License, or (at your option) any later version.
     
    #This program is distributed in the hope that it will be useful,
    #but WITHOUT ANY WARRANTY; without even the implied warranty of
    #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    #Lesser General Public License for more details.
    #You should have received a copy of the GNU Lesser General Public
    #License along with this program; if not, write to the Free Software
    #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     
    #-----------------------------------------------------------MODULE-------------------------------------------------------#
    import sys
    import time
    Une idée ?

  14. #14
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Les "command not found" que tu récupères sont dus au fait que l'interpréteur python n'est, effectivement, pas utilisé.

    Ce sont tes lignes de commentaires mises un peu n'importe où (tu avais déjà eu le même problème ...) et l'ordre du shebang et de la ligne spécifiant l'encodage qui empêche au bash (shell Unix) de savoir qu'il faut interpréter tout le reste comme du python.

    Du coup, le bash tente d'interpréter tes lignes de code comme si c'était un script bash.

    Fais fonctionner ton script sans y mettre toutes tes "enluminures" qui perturbent tout et rajoute les après (au bon endroit ! et si elles sont vraiment nécessaires ...)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  15. #15
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par plxpy Voir le message
    Les "command not found" que tu récupères sont dus au fait que l'interpréteur python n'est, effectivement, pas utilisé.

    Ce sont tes lignes de commentaires mises un peu n'importe où (tu avais déjà eu le même problème ...) et l'ordre du shebang et de la ligne spécifiant l'encodage qui empêche au bash (shell Unix) de savoir qu'il faut interpréter tout le reste comme du python.

    Du coup, le bash tente d'interpréter tes lignes de code comme si c'était un script bash.

    Fais fonctionner ton script sans y mettre toutes tes "enluminures" qui perturbent tout et rajoute les après (au bon endroit ! et si elles sont vraiment nécessaires ...)
    Effectivement je me suis rappelé que j'avais déjà eu ce soucis. Le problème est réglé en retirant les lignes de commentaires qui causaient problème et en commençant mon script par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #! /usr/bin/python
    # -*- coding: utf-8 -*-
    Par contre je suis tombé sur ce site qui explique comment permettre d'installer un script python

    créer un setup

    je vais regarder ça de plus prêt car comme dit plus haut je souhaite par la suite distribuer mon code et permettre à ceux qui sont intéressés pour l'utiliser de l'installer assez simplement.

    Encore merci pour votre aide.

Discussions similaires

  1. Installer des libraires python sous linux
    Par Thomas77380 dans le forum Général Python
    Réponses: 11
    Dernier message: 06/05/2011, 22h17
  2. Réaliser un install pour un script python
    Par mcarluec dans le forum Déploiement/Installation
    Réponses: 13
    Dernier message: 15/04/2008, 08h14
  3. Script Bash sous linux ? problemes
    Par MonsieurAk dans le forum Linux
    Réponses: 4
    Dernier message: 14/03/2006, 16h41
  4. [Tkinter] Python sous Linux
    Par PMdomine dans le forum Tkinter
    Réponses: 7
    Dernier message: 06/03/2006, 20h56
  5. script php sous linux ???
    Par Florina dans le forum Langage
    Réponses: 5
    Dernier message: 13/12/2005, 17h14

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