【发布时间】:2017-08-12 19:37:28
【问题描述】:
我会直截了当。 我正在为 Linux 开发一个带有 GUI 的 GTK 程序,当用户单击特定按钮时,应该运行安装脚本。
如果我通过终端运行我的应用程序,我目前正在开发它,我有一个打开的终端,并且 bash 脚本可以运行。
#this works
python main.py
我的问题是,该应用程序将作为常规应用程序发布,像往常一样通过 .desktop 文件运行,这意味着终端不会打开。
我一直在搜索,找不到运行我的安装脚本的方法,打开一个新终端进行安装。 在正常情况下,您可以从 bash 运行:
uxterm -e -hold 'path to script'
我无法在 python 中完成这项工作:
os.system("uxterm -e -hold 'installer_path')
因为installer_path是一个字符串:
string=name.lower().lstrip().replace(" ","")+"_installer.sh"
installer_path=get_app_installer_path(category)+string
所以我的意思是,我怎样才能正确打开一个新终端,并从新终端运行我的安装脚本?
感谢您的宝贵时间。
【问题讨论】:
-
那么,您的问题是installer_path 被视为字符串而不是变量?
-
是的,因为在该方法中,安装程序路径被视为字符串,而它应该被视为 bash 命令或 bash 脚本的路径。
-
我对你的解释很迷茫,所以让我们尽可能清楚地说明这一点。以下陈述是真的吗? 'installer_path 是一个 Python 变量,我想在子 shell 中用作 Bash 变量,但 Bash 将变量视为名为“installer_path”的字符串。是这样吗?
-
installer_path 是一个 python 变量,它是包含安装脚本路径的字符串,例如 /home/user/Documents/installers/installer1。 Bash 将此变量视为 bash 命令,这让我收到错误“找不到安装程序路径命令”