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 :

OSError: No such file or directory


Sujet :

Python

  1. #1
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut OSError: No such file or directory
    Bonjour,

    Lorsque j'utilise subprocess+Thread, mon dossier a l'air inexistant, alors qu'il est sur le disque.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import subprocess, threading, os
    pth = "/private/tmp/tensorflow/"
     
    assert os.path.exists(pth) # Pas de problème, le dossier existe
    subprocess.call(["open" , pth]) # Pas de problème, mon finder ouvre le dossier (je suis sur Mac)
     
    def serve_board():
        subprocess.call(["tensorboard" ,"--logdir", pth])
    threading.Thread(target=serve_board).start() # Probleme : OSError: [Errno 2] No such file or directory
    Je ne comprends pas le problème, d'autant plus que le même code fonctionnait toute la journée hier.
    - Lorsque je lance la commande tensorboard moi même depuis le terminal, cela fonctionne.
    - Cette erreur n'est pas complètement reproductible. Grosso modo, j'ai l'erreur un jour sur 2 !
    - J'ai essayé de changer le path, sans succès.

    Je ne connais pas trop Mac, mais pensez-vous que le problème vienne de l'OS (un problème de droit ? L'absence de shell dans l'appel à subprocess ?) ? Ais-je raté quelque chose d'évident ?

    Merci d'avance pour vos lumières !

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    De plus, ceci fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    subprocess.call("tensorboard --logdir %s" % (pth,), shell=True)
    Mais de ce que j'ai pu lire, il faut éviter _shell=True_ pour raison de sécurité, et préférer parser soi même la commande (ce qui ne marche pas chez moi).

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

    Via le shell sont aussi définies des variables d'environnement à son lancement qui permettent de trouver le programme à lancer (puisque vous ne donnez pas un nom de chemin absolu).

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

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut Wiztricks, et merci.

    Il me semble que pth = "/private/tmp/tensorflow/" est un chemin absolu sous mac. Si ce n'est pas le cas, à quoi cela doit-il ressembler ?

    En ce qui concerne les variables d'environnements, j'ai remplacé /tmp par /private/tmp, donc je n'en dépend pas normalement (/tmp est un symlink pointant vers /private/tmp).

    Et dans les deux cas, subprocess.call(["open" , pth]) fonctionne sans shell, donc il arrive à trouver le chemin sans shell ...

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 285
    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 285
    Points : 36 773
    Points
    36 773
    Par défaut
    Désolé mais je vous parle du programme. "tensorboard" c'est aussi un fichier qu'il faut trouver et qui ne sera pas recherché de la même façon avec ou sans le shell.

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

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Effectivement, si je remplace la variable d'environnement tensorboard par son chemin absolu, cela marche sans shell ...
    Merci beaucoup, Wiztricks !

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

Discussions similaires

  1. conio.h: No such file or directory
    Par débutant_en_C dans le forum C
    Réponses: 3
    Dernier message: 10/08/2006, 18h55
  2. list : no such file or directory :(
    Par Bakura dans le forum C++
    Réponses: 23
    Dernier message: 13/06/2006, 16h30
  3. Réponses: 7
    Dernier message: 26/04/2006, 09h56
  4. Réponses: 3
    Dernier message: 16/01/2006, 18h24
  5. Réponses: 1
    Dernier message: 04/10/2005, 20h01

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