IDLE (Python 3.4) - 在启动时执行脚本

IDLE (Python 3.4) - Execute a script on launch

上周我一直在 python3.4(在 raspberry pi 上)创建一个简单的触摸友好 GUI。现在我在启动脚本时将 python 设置为 运行,但我 运行 遇到了问题,我无法从我的程序中打开其他程序(例如网络浏览器或计算器).但是,如果我使用 IDLE 来执行脚本而不是终端中的标准 python 程序,则可以从我的脚本中打开其他程序!我已经创建了一个 .sh 文件,当 Linux Gui 启动时,它会 运行s,它会在 IDLE 中打开我的脚本,但是它只打开文件而不执行它。

所以现在我的问题是:我可以创建一个 .sh 脚本,它会在 IDLE 控制台中打开 IDLE 和 运行s 一个 python 脚本(我已经在启动空闲时尝试了 exec 命令没有结果)

现在这是我的命令,它应该执行加载的文件,但只是出于某些原因加载它:

sudo idle3 -c exec(open('/path/to/my/file.py').read())

感谢任何帮助:)

使用 Idle 的 cli 选项

您有几种选择,其中最好的一种是使用 -r 选项。来自 man idle:

   -r file
          Run script from file.

然而,这只会打开 解释器 window。由于您还需要编辑器,因此这将完全符合您的描述:

idle3 '/path.to/file.py'  & idle3 -r '/path.to/file.py'

那么你需要的startup命令是:

/bin/bash -c "idle3 '/path/to/file.py'  & idle3 -r '/path/to/file.py'"

您尝试的命令将不起作用,因为here,我们可以读取:

Only process 0 may call idle(). Any user process, even a process with superuser permission, will receive EPERM.

因此,我们依赖 idle 的 cli 选项,幸运的是它提供了一个选项:)


或者

另一种选择是用 idle3 打开文件等待 window 出现并模拟 F5:

/bin/bash -c "idle3 '/path/to/file.py'  & sleep 3 && xdotool key F5"

这需要 xdotool 安装在您的系统上。

此包装器的高级版本将使用 idle 打开文件,随后检查新的 window 是否存在,聚焦并模拟 F5 xdotool.

然而,这些将是肮脏的选择,幸运的是我们不需要:)。