我已经用PythonKit做了一些实验,并且有一些简单的例子可以使用,但是现在我想调用一个带有一些命令行参数的python脚本,但是我似乎不能让它工作--它大多数时候只是崩溃。
这是我在swift中使用的代码--我正在尝试获取脚本的版本号:
let sys = Python.import("sys")
sys.path.append(“/Path/To/Script/Directory/“)
var example = Python.import(“my_script”)
example.main("-v")
如果我这样调用脚本:example.main()--不带任何参数,脚本打印出它的参数:
optional arguments:
-v, --version show program's version number and exit
-H, --help Display this information
etc.
但PythonKit随后崩溃了:
@discardableResult
func dynamicallyCall(
withArguments args: [PythonConvertible] = []) -> PythonObject {
return try! throwing.dynamicallyCall(withArguments: args)
}
崩溃似乎是由python脚本中的sys.exit()调用引起的,就在打印参数列表之后,当时没有参数,如果我在终端中使用它,脚本工作正常。
那么,有人能告诉我如何从PythonKit调用一个需要参数的python脚本吗?
另外,如果没有争论,我可以做些什么来防止崩溃吗?
1条答案
按热度按时间b1zrtrql1#
我不熟悉swift,但知道
python
从sys.argv
列表获取参数那么,尝试直接向
sys
对象添加参数如何?