【发布时间】:2013-03-17 00:29:38
【问题描述】:
我的应用使用 NSTask 执行 shell 脚本,其中一个脚本启动 X11 应用(特别是 meld)。
我原以为这会起作用:
#!/bin/bash
source ~/.profile # setup $PATH/etc
meld .
但它失败了:
gtk.icon_theme_get_default().append_search_path(meld.paths.icon_dir())
Traceback (most recent call last):
File "/usr/local/bin/meld", line 132, in <module>
gtk.icon_theme_get_default().append_search_path(meld.paths.icon_dir())
AttributeError: 'NoneType' object has no attribute 'append_search_path'
作为概念证明,我将脚本更改为这样,效果很好:
#!/usr/bin/ruby
exec 'osascript -e \'tell app "Terminal" to do script "meld ' + Dir.pwd + '" in front window\''
有没有人是什么导致了这个问题?这是我执行 shell 脚本的代码:
NSTask *task = [[NSTask alloc] init];
task.launchPath = self.scriptURL.path;
task.standardOutput = [NSPipe pipe];
task.currentDirectoryPath = workingDirectoryURL.path;
[task launch];
【问题讨论】:
标签: objective-c macos unix pygtk