Linux上的Python脚本和引导路径上的自动启动

时间:2013-01-16 08:39:59

标签: python bash

我用Python制作了一个脚本,它没有问题。 由于我添加了一个配置文件(我使用过解析器),它在启动时停止启动(我的rc.local文件中有绝对路径)。

进一步调查我发现我需要在python脚本中指定配置文件的绝对路径,否则它无效。

我喜欢它只是在脚本文件所在的文件夹中进行检查。

我的意思是:

如果我的script.py在home文件夹中我想在同一个文件夹中检查它的配置文件...如果它在/ home / user中我想要检入/ home / user。

我怎样才能实现这一点,请记住rc.local是由root用户运行的,其中一些ENV变量与普通用户不同?

2 个答案:

答案 0 :(得分:5)

将路径基于__file__变量:

import os.path
scriptpath = os.path.abspath(os.path.dirname(__file__))

configfile = os.path.join(scriptpath, configfilename)

答案 1 :(得分:1)

作为Martijn上面回答的替代方法,您可以简单地修改您的rc.local文件,将当前工作目录更改为您脚本的目录,然后在没有其绝对路径的情况下运行它。这不需要您修改Python脚本本身。

换句话说,从:

更改您的rc.local
python /home/user/your_script.py

pushd /home/user
python your_script.py
popd