从用Swift编写的现有项目中调用Python代码

Sha*_*aun 18 python swift

我需要一种在Apple平台上从Swift调用Python代码的方法.图书馆是理想的.我已经完成了大量的Google搜索,我找到的最接近的材料是Objective-C.

小智 15

在 swift 5 中你可以尝试PythonKit框架。

以下是用法示例:

import PythonKit

let sys = try Python.import("sys")

print("Python \(sys.version_info.major).\(sys.version_info.minor)")
print("Python Version: \(sys.version)")
print("Python Encoding: \(sys.getdefaultencoding().upper())")
Run Code Online (Sandbox Code Playgroud)


hau*_*nja 10

我找到了这个优秀且最新的要点,引导您完成一个完整的解决方案:https://github.com/ndevenish/Site-ndevenish/blob/master/_posts/2017-04-11-using-python-with-swift -3.markdown

如果你只是使用NSTask来启动Python进程,那也是一个不错的选择.


小智 7

在Swift 4.2中,有一个批准的功能允许动态语言直接移植到swift中

https://github.com/apple/swift-evolution/blob/master/proposals/0195-dynamic-member-lookup.md

看起来类似于:

  // import pickle
  let pickle = Python.import("pickle")

  // file = open(filename)
  let file = Python.open(filename)

  // blob = file.read()
  let blob = file.read()

  // result = pickle.loads(blob)
  let result = pickle.loads(blob)
Run Code Online (Sandbox Code Playgroud)


Sha*_*aun 6

如果有人有兴趣从swift调用python,我发现这里有一些有用的资料:

其中大部分是针对Objective-c的,但是如果你需要使用swift,你可以很容易地创建一个ObjC-Swift桥(超级超级简单) - 查找苹果文档