我该如何将一个Python模块集成到OS X应用程序中,以便我可以从Swift调用Python?似乎大部分信息都已经过时了,我想确保自己走在正确的道路上。
import Python
Py_Initialize()
let a = PyInt_FromLong(1)
let b = PyInt_FromLong(2)
let c = PyNumber_Add(a, b)
let result = PyInt_AsLong(c)
print("Result is \(result)") // will print 'Result is 3'
对于更复杂的事情,它变得更加复杂:
import Python
Py_Initialize()
// call urllib.urlopen('http://icanhazip.com').read()
let module = PyImport_Import(PyString_FromString("urllib"))
let urlOpenFunc = PyObject_GetAttrString(module, "urlopen")
if urlOpenFunc != nil && PyCallable_Check(urlOpenFunc) == 1 {
let args = PyTuple_New(1)
PyTuple_SetItem(args, 0, PyString_FromString("http://icanhazip.com"))
let openCall = PyObject_CallObject(urlOpenFunc, args)
let readCall = PyObject_CallObject(PyObject_GetAttrString(openCall, "read"), nil)
if readCall != nil {
if let result = String.fromCString(PyString_AsString(readCall)) {
print("My IP is \(result)")
} else {
print("Failed")
}
}
}