1 votes

Ubuntu 16.04 FileNotFoundError lorsque le programme est lancé depuis un autre dossier

J'ai créé un programme qui utilise des fichiers supplémentaires, par exemple form.ui, et lorsque j'exécute le programme à partir d'un répertoire du programme, tout est correct, mais lorsque je l'exécute à partir d'un autre dossier, j'obtiens un message d'erreur. FileNotFoundError Comment puis-je le réparer ? Je vous serais reconnaissant pour tout conseil.

v@v-System-Product-Name:/path/AppName$ ./app

Travaux.

v@v-System-Product-Name:~$ /path/AppName/app

FileNotFoundError: [Errno 2] No such file or catalog: 'form.ui'

1voto

pa4080 Points 27038

Vous devez ajouter le chemin du fichier avant son nom, dans le script. Il semble que votre fichier - form.ui - est dans le même répertoire où se trouve le script. Vous devez donc obtenir l'emplacement actuel du script et mettre ce chemin avant le nom du fichier.

Par exemple, supposons que vous voulez simplement imprimer (sur l'écran) le contenu du fichier form.ui et :

  • vous utilisez bash . Le script doit ressembler à :

    #!/bin/bash
    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    cat "$DIR/form.ui"
  • vous utilisez php . Le script doit ressembler à :

    <?php
        $DIR = realpath(dirname(__FILE__));
        echo file_get_contents("$DIR/".'form.ui');
    ?>

Où la variable $DIR contient le chemin vers votre script.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X