Ubuntu 16.04 当程序从另一个文件夹运行时出现 FileNotFoundError

Ubuntu 16.04 当程序从另一个文件夹运行时出现 FileNotFoundError

我创建了一个使用附加文件(例如 form.ui)的程序,当我从程序目录运行该程序时,一切正常,但当我从另一个文件夹运行时,我得到了一个FileNotFoundError,我该如何修复它?我将不胜感激任何建议。

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

作品。

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

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

答案1

您需要在脚本中将文件路径添加到文件名称之前。看起来您的文件 - form.ui- 与脚本位于同一目录中。因此,您需要获取脚本的当前位置并将此路径放在文件名之前。

例如,假设您只想(在屏幕上)打印文件的内容form.ui,并且:

  • 你使用狂欢. 脚本必须如下所示:

    #!/bin/bash
    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    cat "$DIR/form.ui"
    
  • 你使用php. 脚本必须如下所示:

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

其中变量$DIR包含脚本的路径。

相关内容