Ubuntu 16.04 FileNotFoundError quando o programa é executado a partir de outra pasta

1

Eu criei um programa que usa arquivos adicionais, por exemplo form.ui e quando eu executo o programa de um diretório do programa, tudo está ok, mas quando eu corro de outra pasta eu recebo um FileNotFoundError , como pode Eu resolvo isso? Eu ficaria grato por qualquer conselho.

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

Funciona.

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

FileNotFoundError: [Errno 2] No such file or catalog: 'form.ui'
    
por Jrh 10.02.2017 / 09:25

1 resposta

1

Você precisa adicionar o caminho ao arquivo antes do nome, no script. Parece que seu arquivo - form.ui - está no mesmo diretório em que o script está localizado. Então você precisa obter a localização atual do script e colocar esse caminho antes do nome do arquivo.

Por exemplo, suponhamos que você queira imprimir (na tela) o conteúdo do arquivo form.ui e:

  • você está usando bash . O script deve se parecer com:

    #!/bin/bash
    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    cat "$DIR/form.ui"
    
  • você está usando php . O script deve se parecer com:

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

Onde a variável $DIR contém o caminho para o seu script.

    
por pa4080 10.02.2017 / 10:19

Tags