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

时间:2016-09-25 12:17:48

标签: python linux shell raspberry-pi python-idle

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

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

现在这是我的命令,它应该执行加载的文件,但只加载一些reaseon:

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

感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

使用空闲的cli选项

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

   -r file
          Run script from file.

但是这只会打开解释器窗口。由于您还需要编辑器,因此这将完全按照您的描述进行操作:

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

您需要的启动命令是:

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

![enter image description here

您尝试的命令无效,因为here,我们可以阅读:

  

只有进程0可以调用idle()。任何用户进程,甚至是具有超级用户权限的进程,都将收到EPERM。

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

替代地

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

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

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

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

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