outcastgeek / PythonKit

Swift framework to interact with Python.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PythonKit

Swift framework to interact with Python.

Requirements

PythonKit requires Swift 5 or higher and has been tested on macOS, Linux and Windows.

Usage

Some Python code like this:

import sys

print(f"Python {sys.version_info.major}.{sys.version_info.minor}")
print(f"Python Version: {sys.version}")
print(f"Python Encoding: {sys.getdefaultencoding().upper()}")

Can be implemented in Swift through PythonKit with the following code:

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())")

Swift Package Manager

Add the following dependency to your Package.swift manifest:

.package(url: "https://github.com/pvieito/PythonKit.git", .branch("master")),

Build

PythonKit can be built with Swift PM:

$ cd PythonKit
$ swift run
[*] Python 3.7
[ ] Version: 3.7.0

The Python library will be loaded at runtime, PythonKit will try to find the most modern Python version available in the system. You can force a given version with the PYTHON_VERSION environment variable or an specific Python library path or name with PYTHON_LIBRARY.

$ PYTHON_VERSION=3 swift run
[*] Python 3.5
[ ] Version: 3.5.2
$ PYTHON_VERSION=2.7 swift run
[*] Python 2.7
[ ] Version: 2.7.10
$ PYTHON_LIBRARY=libpython3.5.so swift run
[*] Python 3.5
[ ] Version: 3.5.2
$ PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so swift run
[*] Python 2.7
[ ] Version: 2.7.10

Notes

PythonKit is based on the Python module from the Swift for TensorFlow project. Currently both modules are equivalent, the mantainers have been developing them jointly and are kept in sync.

About

Swift framework to interact with Python.

License:Apache License 2.0


Languages

Language:Swift 100.0%