运行python脚本的NSTask无法打开.py文件

时间:2015-06-26 13:42:13

标签: python xcode macos swift

我正在创建一个OS X Today Widget。为了获得我需要的数据,我使用的是一个由NSTask对象调用的python脚本。

这是调用python脚本并显示其输出的代码:

func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {
    let task = NSTask()
    let pipe = NSPipe()

    task.launchPath = "/usr/bin/arch"
    task.arguments = ["-x86_64", "/usr/bin/python", "/Users/tomas/Developement/N_news_reader/NReader1/ahoj.py"]

    task.standardOutput = pipe

    task.launch()

    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    var news: String = (NSString(data: data, encoding: NSUTF8StringEncoding) as? String)!

    self.widgetLabel.stringValue = news

    completionHandler(.NewData)
}

在终端中,我还使用chmod 777 ahoj.py

更改了ahoj.py的访问权限

然而,在运行代码后,Xcode给出了以下错误:

/ usr / bin / python:无法打开文件'/Users/tomas/Developement/N_news_reader/NReader1/ahoj.py':[Errno 1]不允许操作'

1 个答案:

答案 0 :(得分:0)

您是否尝试使用sudo并将arch命令放在task.arguments

像这样:

task.launchPath =“/ usr / bin / sudo”     task.arguments = [“arch”,“ - x86_64”,“/ usr / bin / python”,“/ Users / tomas / Distribution / N_news_reader / NReader1 / ahoj.py”]

只要我更改了visudo设置以避免“输入密码”步骤,它就适用于我。