小编Flo*_*rin的帖子

从Swift运行python脚本

我正试图在我的可可应用程序中运行swift的python脚本.
脚本确实运行但有一些错误.
当我从终端运行该文件时,脚本工作正常,没有错误.

这是运行python文件的代码:

let process = Process()
process.launchPath = "/usr/bin/python"
process.currentDirectoryPath = "\(NSHomeDirectory())" + "/tmp"
process.arguments = [path.stringByAppendingPathComponent("pacman.py")]
process.launch()
Run Code Online (Sandbox Code Playgroud)

当我尝试使用Process()从我的应用程序运行python文件时,我收到的错误是:

Traceback (most recent call last):
   File "/Users/fflorica/Library/Developer/Xcode/DerivedData/Taylor-acpgvfjjherixnfchbrbrayxxvsm/Build/Products/Debug/Taylor.app/Contents/Frameworks/TaylorFramework.framework/Resources/pacman.py", line 439, in <module>
    g = Game()
   File "/Users/fflorica/Library/Developer/Xcode/DerivedData/Taylor-acpgvfjjherixnfchbrbrayxxvsm/Build/Products/Debug/Taylor.app/Contents/Frameworks/TaylorFramework.framework/Resources/pacman.py", line 251, in __init__
    self._init_curses()
   File "/Users/fflorica/Library/Developer/Xcode/DerivedData/Taylor-acpgvfjjherixnfchbrbrayxxvsm/Build/Products/Debug/Taylor.app/Contents/Frameworks/TaylorFramework.framework/Resources/pacman.py", line 280, in _init_curses
    curses.cbreak()
 error: cbreak() returned ERR

Traceback (most recent call last):
  File "/Users/fflorica/Library/Developer/Xcode/DerivedData/Taylor-acpgvfjjherixnfchbrbrayxxvsm/Build/Products/Debug/Taylor.app/Contents/Frameworks/TaylorFramework.framework/Resources/pacman.py", line 450, in <module>
    raw_input()
EOFError
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:过去我使用了system()函数:

system("cd " + path)
system("python " + path + "/pacman.py")
Run Code Online (Sandbox Code Playgroud)

然后,我使用NSTask,它工作得非常好.
现在,NSTask是Process,我在使用Process时遇到了这些错误. …

swift swift3

6
推荐指数
0
解决办法
2334
查看次数

标签 统计

swift ×1

swift3 ×1