【问题标题】:Starting a python script on boot (startx) with an absolute path, in which there are relative paths使用绝对路径在启动时启动 python 脚本(startx),其中有相对路径
【发布时间】:2014-05-06 10:48:13
【问题描述】:

我意识到这个问题可能已经存在,但我找到的答案没有奏效,而且我的设置略有不同。

我有一个 python 文件 /home/pi/python_games/frontend.py,我试图在加载 lxde 时通过将 @python /home/pi/python_games/frontend.py 放入 /etc/xdg/lxsession/LXDE/autostart 来启动它。

它没有运行,也没有错误消息。

当尝试运行python /home/pi/python_games/frontend.py 时,python 抱怨无法找到使用相对链接加载的文件,例如:/home/pi/python_games/image.pngimage.png 调用。显然,一种解决方案是为这些资源提供绝对路径,但是 python 程序也会调用其目录中也有相对路径的其他 python 程序,我不想去更改它们。

有人有什么想法吗?

谢谢 汤姆

【问题讨论】:

    标签: python path absolute-path


    【解决方案1】:

    您可以在开始调用相对导入之前更改脚本中的当前工作目录,请使用 os.chdir("您的脚本所在位置的绝对路径")。

    【讨论】:

    • 嘿,谢谢。该脚本使用 & 在后台运行。您的解决方案会影响在此之后启动的脚本吗?
    • 不,它只会更改您添加命令的脚本的工作目录。
    【解决方案2】:

    您可以在frontend.pyscript 中使用预定义__file__module 属性的值(即脚本文件的绝对路径名)来确定其他文件的绝对路径,而不是更改当前工作目录在同一目录中。

    os.pathmodule 中的函数,例如split()join(),将让这件事变得相当容易。

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2016-01-09
      • 2011-09-29
      • 2018-05-23
      相关资源
      最近更新 更多