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 :

Mais ou se trouve donc le logiciel ?


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut Mais ou se trouve donc le logiciel ?
    Bonjour,

    Je travaille en python3 (pyqt4) sous Kubuntu et je suis confronté à un soucis :
    Pour savoir où se trouve le logiciel, j'utilise la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.path.abspath(os.path.dirname(sys.argv[0]))
    Celle-ci fonctionne très bien sauf dans un cas spécial.

    Sachant que mon logiciel peut être portable ou dans un ppa (dépôt privé), celui-ci peut se trouver à divers endroits.

    Pour la version packagée pour le ppa, j'utilise simplement un lien (ln -s) depuis /usr/bin pointant vers le logiciel se trouvant dans /usr/share/mon_appli.

    Or si je lance le logiciel depuis la commande (donc sans aucune mention de /usr/share/mon_appli), il me dit qu'il se trouve dans /usr/bin.

    Alors bien évidement, il est possible de faire un bête if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if os.path.exists(os.path.abspath(sys.argv[0])):
      dir = os.path.abspath(os.path.dirname(sys.argv[0]))
    elif os.path.exists("/usr/sharemon_appli/fichier_python"):
      dir = "/usr/sharemon_appli"
    Mais uniquement parce que je sais vers où pointe le lien dans le cas actuel, mais si quelqu'un fait un lien pour la version portable, impossible pour le logiciel de le savoir...

    Mais ma question est plus théorique, comment peut-on contourner le problème de détection du dossier ?
    Comment faire pour ne pas que l'emplacement renvoyé soit /usr/bin mais bien l'emplacement du logiciel ?

    Le tout en python3 bien évidement, on va éviter de faire un local ou un find sur tout le pc :p

    Merki et bonne journée.

    PS : je ne pourrais pas répondre pendant quelques jours mais je viendrais lire vos réponses
    Sous Kubuntu 20.04

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 239
    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 239
    Points : 36 692
    Points
    36 692
    Par défaut
    Salut,

    utilisez __file__

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Salut, merci pour ta réponse mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print(__file__)
    /usr/bin/mangapanda
    mais on m'a indiqué ceci qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.path.abspath(os.path.realpath(sys.argv[0]))
    /usr/share/mangapanda/MangaPanda.py
    merci quand même
    Sous Kubuntu 20.04

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Encore un PB diapo mais reponse non trouvée sur forum
    Par kosaga dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 23/09/2008, 14h41
  2. Mais où se trouve la perspective PHP ?
    Par Dr.Vince dans le forum Eclipse PHP
    Réponses: 16
    Dernier message: 05/10/2007, 10h09
  3. Réponses: 1
    Dernier message: 11/05/2007, 20h41
  4. kaspersky netoye mais il touche le système et logiciel
    Par StyleXP dans le forum Sécurité
    Réponses: 4
    Dernier message: 27/03/2006, 21h42

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