我有一些Python代码在Windows和Ubuntu Linux中运行良好,但在Mac上有问题。
我正在做的是向用户(在我的应用程序中)提供选择他想要打开的应用程序的能力,只要他按下我的应用程序上的按钮(这样他就可以调用而无需每次都搜索它)
设置代码如下(简化):
self.app_opt = options = {}
options['title'] = 'Please choose an app from your computer'
options['initialdir'] = '~/'
chosen_app = "~/"
chosen_app = askopenfilename(parent = self.parent, **self.app_opt)
self.chosen_app = chosen_app
稍后,按下按钮,按钮中的代码如下所示:
subprocess.Popen(self.chosen_app)
正如我所说,它在Windows中工作正常(我转到" Program Files",选择一个可执行文件,一切都很好),当我按下按钮时它会运行。同样在Ubuntu中 - (我从/ usr / bin中选择),当我按下按钮时app运行正常。
尝试在Mac中执行此操作 - 仅作为示例,我们希望在按下按钮时打开iTunes - 现在可以找到运行iTunes的真实应用程序。
/Applications/iTunes.app/Contents/MacOS/iTunes
但我无法选择
/Applications/iTunes.app
我需要在文件对话框中添加一些选项/设置才能使其正常工作吗?
答案 0 :(得分:0)
在问了一个朋友之后(感谢DJ!)我觉得这是错误的方式
在Mac中我不应该打电话
subprocess.Popen(self.chosen_app)
但更像是
subprocess.Popen('open -a \"' + self.chosen_app + '\"')
解释here
将报告其工作原理