我用 Python 开发了一个算法库(+ 使用例如 pandas 和 numpy),我寻找一种方法在 Android 和 iOS 上部署这些算法,而无需重写原生代码或使用任何其他语言。
在探索了几个选项之后,我看到了如何解决 Python 迁移的四种主要可能性:
- 将每个平台的 Python 代码翻译成 native 代码(Java 或 Swift/Objective-C)(我不喜欢这样做,因为将相同的代码保持一致似乎有很多冗余工作)
- 将 Python 代码翻译成 C 或 C++,这两个操作系统都可以执行(不幸的是,我不精通 C/C++,我想我不会 ;))但是有一些工具或解释为 Cypthon或 Nuikta哪个可以将 Python 代码翻译成可执行的 C 或 C++ 版本?
- 使用 Kivy为两个操作系统创建一个基于 Python 的应用程序,但是我不想要一个完整的 .apk 而只是一个 AAR 或库,我可以将其用作其他应用程序的模块(我不确定这是否有效)<
- 在 Chaquopy 的帮助下通过 Python 解释器在 Android 中运行 Python 代码。但是,我没有看到任何适用于 iOS 的类似解决方案...
围绕这四个选项,我有几个问题:
- 有可能用Cython吗? , Nuitka ,或任何其他工具将具有所有依赖项的 Python 代码转换为可由 Android 和 iOS 使用的可执行 C/C++ 代码?
- 我可以使用Kivy吗?创建一个库(例如在 Android 或 library package on iOS 上这样)
- 有什么明显的选择是我想念的吗?
我知道使用 native 代码可能是最快的解决方案,而自动生成的代码可能存在缺陷并且效率低下(并且总是依赖于维护者)。尽管如此,我现在更喜欢将 Python 代码作为我的核心的方式,只要我还处于原型(prototype)阶段,我会很高兴听到社区的意见!
最佳答案
你问了很多问题,所以请原谅我只回答其中一个。
在这种情况下,Cython 不会为您节省任何工作。虽然它可以将 Python 代码转换为 C,但生成的代码主要包含对 Python C API 的调用。因此,您仍然需要管理所有细节,包括在您的应用程序中包含 libpython
库、加载它并对其进行初始化。
关于android - 我可以基于 Python 代码为 Android 和/或 iOS 创建可执行代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51290516/