在终端 Lubuntu 中自动启动 Python 脚本

在终端 Lubuntu 中自动启动 Python 脚本

我在 ODROID C0 上使用 Lubuntu。有一个 Python 脚本需要自动启动。我导航到

[开始菜单]>首选项>LXSession 的默认应用程序

,然后导航到自动启动选项卡并添加xterm -e "python /path/to/script.py"。 xterm 自动启动可以正常工作,但会显示错误

xterm: 无法 execvp “python: 没有此文件或目录

关于如何正确配置此 Python 脚本的自动启动,您有什么想法吗?

谢谢。

答案1

请使用xterm -e python /path/to/script.py,但不带引号。

您的"引号没有按照您想要的方式运行。xterm -e正在尝试"python/path/to/script.py"作为其参数运行,而不是以python作为/path/to/script其参数运行。在这种情况下,您可以简单地省略引号。

在 shell 脚本中或以交互方式运行 shell 时,引号被特殊处理删除引文执行。但是,对于您在LXSession 配置自动启动手动自动启动的应用程序

幸运的是,即使xterm -e在 Ubuntu 中执行单词拆分在一个参数上将其视为命令,它还接受多个参数。这就是为什么-e必须是最后一个选项——其他一切都被解释为命令的一部分。例如,如果你运行xterm -e nano foo,它会在 XTerm 窗口中打开。foo作为nanoman xterm说:

   -e 程序 [ 参数 ... ]
           该选项指定程序(及其命令行
           参数)在终端窗口。它还设置
           窗口标题和图标名称作为程序的基本名称
           被执行,如果-T也不-n在命令中给出
           线。  这必须是命令行上的最后一个选项。

假设您不想运行路径名称中包含空格的脚本,您只需删除引号:

xterm -e python /path/to/script.py

我还想到了另外两个警告:

  • 脚本完成后python退出,然后 XTerm 窗口也会退出。如果您不想这样,那么您可以向 Python 脚本添加等待用户交互的代码,或者您可以编写一个包装器 shell 脚本(或任何类型的包装器脚本),运行python /path/to/script.py后等待用户交互。
  • 终端在 Lubuntu 中运行良好,但默认的 GUI 终端仿真器是LX终端。如果您更愿意使用它,您可以使用lxterminal而不是xterm命令lxterminal接受-e并以与 相同的方式处理它xterm,因此这看起来像lxterminal -e python /path/to/script/py。与 XTerm 一样,LXTerminal 将在命令运行完成后退出。

相关内容