android - 我可以基于 Python 代码为 Android 和/或 iOS 创建可执行代码吗?

标签 android python c++ ios c

我用 Python 开发了一个算法库(+ 使用例如 pandas 和 numpy),我寻找一种方法在 Android 和 iOS 上部署这些算法,而无需重写原生代码或使用任何其他语言。

在探索了几个选项之后,我看到了如何解决 Python 迁移的四种主要可能性:

  • 将每个平台的 Python 代码翻译成 native 代码(Java 或 Swift/Objective-C)(我不喜欢这样做,因为将相同的代码保持一致似乎有很多冗余工作)
  • Python 代码翻译成 C 或 C++,这两个操作系统都可以执行(不幸的是,我不精通 C/C++,我想我不会 ;))但是有一些工具或解释为 CypthonNuikta哪个可以将 Python 代码翻译成可执行的 C 或 C++ 版本?
  • 使用 Kivy为两个操作系统创建一个基于 Python 的应用程序,但是我不想要一个完整的 .apk 而只是一个 AAR 或库,我可以将其用作其他应用程序的模块(我不确定这是否有效)<
  • Chaquopy 的帮助下通过 Python 解释器在 Android 中运行 Python 代码。但是,我没有看到任何适用于 iOS 的类似解决方案...

围绕这四个选项,我有几个问题:

  • 有可能用Cython吗? , Nuitka ,或任何其他工具将具有所有依赖项的 Python 代码转换为可由 Android 和 iOS 使用的可执行 C/C++ 代码?
  • 我可以使用Kivy吗?创建一个库(例如在 Androidlibrary package on iOS 上这样)
  • 有什么明显的选择是我想念的吗?

我知道使用 native 代码可能是最快的解决方案,而自动生成的代码可能存在缺陷并且效率低下(并且总是依赖于维护者)。尽管如此,我现在更喜欢将 Python 代码作为我的核心的方式,只要我还处于原型(prototype)阶段,我会很高兴听到社区的意见!

最佳答案

你问了很多问题,所以请原谅我只回答其中一个。

在这种情况下,Cython 不会为您节省任何工作。虽然它可以将 Python 代码转换为 C,但生成的代码主要包含对 Python C API 的调用。因此,您仍然需要管理所有细节,包括在您的应用程序中包含 libpython 库、加载它并对其进行初始化。

关于android - 我可以基于 Python 代码为 Android 和/或 iOS 创建可执行代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51290516/

相关文章:

c++ - 我的 'next offset' 算法中的错误 - C++

c++ - Gcc 预处理器和粘贴

c# - Xamarin - 为 TextView 设置背景颜色和边框

android - 在 Android 中使用 HttpURLConnection 从 url 获取 xml

android - 将项目从一个回收器 View ( ListView )拖放到另一个回收器 View ( ListView )

python - 使用 SVD 进行降维,指定要保持的能量

c++ - 使用 C++ 的 SQLite3 检索 ID 并存储到另一个表

javascript - 隐藏滚动条 - Webview - CrossWalk

python pandas 聚合后重新附加列

python - 将 pandas DataFrame reshape 为堆叠/记录/数据库/长格式