Запустить python скрипт через swift - PullRequest
0 голосов
/ 02 августа 2020

Я новичок в swift, но я пытаюсь запустить сценарий python с помощью быстрого кода. Пока это мой код, однако вывод, который я получаю, - zsh: доступ запрещен. Я не знаю, что делать дальше. Есть ли у меня возможность запустить сценарий python.

Мой текущий метод

class func runCode(launchPath: String, cmd: [String]) -> String {
        let pipe = Pipe()
        let process = Process()
        process.launchPath = "/bin/zsh"
        process.arguments = ["-c", String(format:"%@", cmd)]
        process.standardOutput = pipe
        let fileHandle = pipe.fileHandleForReading
        process.launch()
        
        return String(data: fileHandle.readDataToEndOfFile(), encoding: .utf8) ?? "Error"
    }

Вызов метода

print(Shortcuts.runCode(launchPath: "/usr/bin/python", cmd: [contentView.controller.path]))

Вывод zsh: 2: в разрешении отказано:

1 Ответ

0 голосов
/ 02 августа 2020

Похоже, что процесс, который вы выполняете, оказывается /bin/zsh -c [contentView.controller.path] - то есть вы на самом деле вообще не запускаете Python. Обратите внимание, что вы на самом деле не используете аргумент launchPath в методе runCode.

Мне кажется, что вы должны делать это вместо этого:

let pipe = Pipe()
let process = Process()
process.launchPath = "/usr/bin/python"
process.arguments = [String(format:"%@", contentView.controller.path)]
process.standardOutput = pipe
let fileHandle = pipe.fileHandleForReading
process.launch()

return String(data: fileHandle.readDataToEndOfFile(), encoding: .utf8) ?? "Error"

Я не сделал ' Я не знаю, для чего еще вы используете функцию runCode, но это должно работать для вашего конкретного примера c.

...