gpt4 book ai didi

python - 在没有桌面的情况下在启动时运行 tkinter gui 应用程序

转载 作者:行者123 更新时间:2023-12-04 19:05:39 25 4
gpt4 key购买 nike

我正在寻找答案,但找不到任何相关内容。
我想基于 Linux Ubuntu 构建带有触摸屏的自助点餐亭。系统应该使用单个 tkinter gui 应用程序自动启动,但我不需要任何桌面。
此外,如果应用程序因任何原因崩溃,我不希望任何人看到任何桌面 - 黑屏将是完美的。
我正在研究 openbox - 这行得通吗?
你能指导我朝哪个方向看吗?

最佳答案

我知道这实际上并没有回答这个问题,因为这里的操作系统风格不同。
这是在带有 LXDE 桌面的 Debian 上完成的。我为我的软件编写了一个自动设置脚本,从这里复制了一些片段。
请注意确定您是否有相同的情况。
步骤 1 禁用 LXDE 桌面:
我已经从默认自动启动和用户自动启动中注释掉了 lxpanel 和 xscreensaver

  #DISABLE THE DESKTOP
sudo sed -i 's/^@lxpanel/#@lxpanel/g' /etc/xdg/lxsession/LXDE/autostart
sudo sed -i 's/^@xscreensaver/#@xscreensaver/g' /etc/xdg/lxsession/LXDE/autostart
#DISABLE THE DESKTOP FOR THE USER
sudo sed -i 's/^@lxpanel/#@lxpanel/g' /etc/xdg/lxsession/LXDE-${user_name}/autostart
sudo sed -i 's/^@xscreensaver/#@xscreensaver/g' /etc/xdg/lxsession/LXDE-${user_name}/autostart
步骤 2 设置应用程序:

Note: I was using python3.7

#SETUP PYTHON VENV
python3 -m venv ${application_root_dir}/venv
cd ${application_root_dir}/venv
source ${application_root_dir}/venv/bin/activate

# Install external dependencies, if any
pip3 install <dependecny_name>

# Install your software
pip3 install <software>
deactivate
步骤 3 准备 Atuostart(可选):
创建要在自动启动中执行的脚本。请注意,这是可选的,您可以直接在自动启动中使用您的命令(第 4 步)。
tee -a ${application_root_dir}/start_my_app.sh > /dev/null << EOT
#!/bin/bash
cd ${application_root_dir}
source venv/bin/activate
python3 -m package.MyApp
deactivate
EOT

# Set execute permissions
sudo chmod 744 ${root_dir}/start_my_app.sh
第 4 步启动自动启动:

Note: you can execute any command by setting ExecStart in [service]


4.1 创建新服务
# CREATE A SERVICE FILE
sudo tee -a /etc/systemd/system/my_app.service > /dev/null << EOT
[Unit]
Description=Start MY_APPLICATION
After=default.target
Wants=default.target

[Service]
User=${user_name}
Group=$user_group
Environment=DISPLAY=:0.0
Environment=XAUTORITY=/home/${user_name}/.Xauthority
ExecStart=/bin/bash -c "${root_dir}/start_my_app.sh"

[Install]
WantedBy=default.target
EOT
4.2 注册并启用服务
sudo /usr/bin/systemctl daemon-reload
sudo /usr/bin/systemctl enable my_app.service
4.3 重启
sudo reboot

Note: To enable the desktop back for troubleshooting (if at all required - I never needed though, as ssh was enabled in my case so I was using terminal). Uncomment the commented part of lxde deskop and reboot.

关于python - 在没有桌面的情况下在启动时运行 tkinter gui 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70740398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com