Мне нужен способ вызвать код Python из Swift на платформе Apple. Библиотека была бы идеальной. Я выполнил значительный поиск в Google, и самый близкий материал, который я нашел, для Objective-C.
Вызовите код Python из существующего проекта, написанного в Swift
Ответ 1
Если кто-нибудь когда-либо заинтересован в вызове python из swift, вот какой полезный материал я нашел:
- U фреймворк python - https://developer.apple.com/library/ios/technotes/tn2328/_index.html
- PyObjC (немного сложнее) -
- Cobbal - https://github.com/cobbal/python-for-iphone
- Документы Python (вам нужно создать мост C-Swift)
Большая часть из них предназначена для Objective-c, но если вам нужно использовать swift, вы можете просто создать мост ObjC-Swift (супер супер супер) - найти яблочные документы
Ответ 2
Я нашел эту превосходную и актуальную суть, которая проведет вас через полное решение: https://github.com/ndevenish/Site-ndevenish/blob/master/_posts/2017-04-11-using-python-with-swift -3.markdown
Если вы можете просто использовать NSTask для запуска процесса Python, это тоже неплохой вариант.
Ответ 3
В 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)
Ответ 4
В Swift 5 вы можете попробовать PythonKit Framework.
Вот пример использования:
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())")