我正在使用带有 ODROID C0 的 Lubuntu。有一个 Python 脚本需要自动启动。我导航到
[开始菜单]>首选项>LXSession 的默认应用程序
,然后导航到自动启动选项卡并添加xterm -e "python /path/to/script.py"
. xterm 自动启动工作但读取错误
xterm:无法执行“python:没有这样的文件或目录
关于如何正确配置此 Python 脚本的自动启动的任何想法?
谢谢。
我正在使用带有 ODROID C0 的 Lubuntu。有一个 Python 脚本需要自动启动。我导航到
[开始菜单]>首选项>LXSession 的默认应用程序
,然后导航到自动启动选项卡并添加xterm -e "python /path/to/script.py"
. xterm 自动启动工作但读取错误
xterm:无法执行“python:没有这样的文件或目录
关于如何正确配置此 Python 脚本的自动启动的任何想法?
谢谢。
改用
xterm -e python /path/to/script.py
, 不带引号。您的
"
报价没有按照您想要的方式运行。xterm -e
正在尝试以"python
with/path/to/script.py"
作为其参数运行,而不是python
with/path/to/script
作为其参数。在这种情况下,您可以简单地省略引号。在 shell 脚本中或以交互方式运行 shell 时,会特别处理引号并执行引号删除。但是,您在LXSession 配置→自动启动→手动自动启动应用程序中指定的命令不会发生这种情况。
幸运的是,即使
xterm -e
在 Ubuntu 中会对一个参数执行分词以将其视为命令,它也接受多个参数。这就是为什么-e
必须是最后一个选项 - 其他所有内容都被解释为命令的一部分。例如,如果您运行xterm -e nano foo
,它将在 XTerm 窗口中foo
打开nano
。正如man xterm
所说:假设您没有尝试运行路径名称中包含空格的脚本,您所要做的就是删除引号:
我想到了另外两个警告:
python
退出,然后 XTerm 窗口也将退出。如果您不想要这个,那么您可以将代码添加到等待用户交互的 Python 脚本,或者您可以编写一个运行python /path/to/script.py
然后等待用户交互的包装器外壳脚本(或任何类型的包装器脚本)。lxterminal
而不是xterm
. 该lxterminal
命令接受-e
并以与 相同的方式处理它xterm
,因此看起来像lxterminal -e python /path/to/script/py
。与 XTerm 一样,LXTerminal 将在命令完成运行时退出。