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

标签 python linux shell raspberry-pi python-idle

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

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

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

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

感谢任何帮助:)

最佳答案

使用 Idle 的 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 ,我们可以读到:

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

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


或者

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

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

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

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

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

关于python - IDLE (Python 3.4) - 在启动时执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39686711/

相关文章:

python - 基于内部连接连接字符串

python - Anaconda 提示立即关闭——系统无法找到指定的注册表项或值

linux - 在 Linux 中打印多列的总和

linux - 如何在bash中使用jq从变量中包含的json中提取值

python - 如何获得两个不同列表的所有可能组合?

python - 鼠标卡在不同的选择模式pycharm

linux - 在类似 Linux 的系统(Nvidia Jetson TX1)上更改 GPU 时钟速率

c++ - 信号系统调用可以与类的 C++ 静态成员一起使用吗?

linux - "Permission denied"启动时运行命令

linux - 如何使 shell 脚本的一部分超时并在没有退出代码 0 的情况下重新运行它