Python for ios解释器[重复]

2024-05-22

可能的重复:
iOS 上的 Python 或 Ruby 解释器 https://stackoverflow.com/questions/4772591/python-or-ruby-interpreter-on-ios

我刚刚发现这个应用程序pypad http://users.on.net/~jon.dowdall/pypad/index.html and ios 的 python http://pythonforios.com/

他们就像口译员和编辑一样

那么您会推荐哪个应用程序

但最重要的是,这个解释器是如何工作的,我在哪里可以看到 obj c 和 python 如何一起工作的示例?

Thanks!


我是唯一的创造者适用于 iOS 的 Python http://pythonforios.com这当然是我推荐的,但是每个应用程序的评论和评级是您个人决定的一个很好的指标。我花了几周的时间才弄清楚如何将 python 正确集成到这个应用程序的 Objective-c 中,但这里是帮助您入门的最佳资源(请记住,ObjC 只是 C 的超集):

http://docs.python.org/c-api/ http://docs.python.org/c-api/


另外,这里是调用定义在中的函数的示例myModule。等效的 python 是:

import myModule
pValue = myModule.doSomething()
print pValue

在 Objective-c 中:

#include <Python.h>

- (void)example {

    PyObject *pName, *pModule, *pDict, *pFunc, *pArgs, *pValue;
    NSString *nsString;

    // Initialize the Python Interpreter
    Py_Initialize();

    // Build the name object
    pName = PyString_FromString("myModule");

    // Load the module object
    pModule = PyImport_Import(pName);

    // pDict is a borrowed reference 
    pDict = PyModule_GetDict(pModule);

    // pFunc is also a borrowed reference 
    pFunc = PyDict_GetItemString(pDict, "doSomething");

    if (PyCallable_Check(pFunc)) {
        pValue = PyObject_CallObject(pFunc, NULL);
        if (pValue != NULL) {
            if (PyObject_IsInstance(pValue, (PyObject *)&PyUnicode_Type)) {
                    nsString = [NSString stringWithCharacters:((PyUnicodeObject *)pValue)->str length:((PyUnicodeObject *) pValue)->length];
            } else if (PyObject_IsInstance(pValue, (PyObject *)&PyBytes_Type)) {
                    nsString = [NSString stringWithUTF8String:((PyBytesObject *)pValue)->ob_sval];
            } else {
                    /* Handle a return value that is neither a PyUnicode_Type nor a PyBytes_Type */
            }
            Py_XDECREF(pValue);
        } else {
            PyErr_Print();
        }
    } else {
        PyErr_Print();
    }

    // Clean up
    Py_XDECREF(pModule);
    Py_XDECREF(pName);

    // Finish the Python Interpreter
    Py_Finalize();

    NSLog(@"%@", nsString);
}

如需更多文档,请查看:扩展和嵌入Python解释器 http://docs.python.org/extending/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python for ios解释器[重复] 的相关文章

随机推荐

  • @ConfigurationProperties Spring Boot 配置注释处理器在类路径中找不到

    我尝试完成自定义属性春季启动 我尝试通过创建一个简单的项目IntelliJ IDEA 2016 3 创建了一个新的 Gradle 项目Spring Boot 初始化 我根本没有检查过任何东西 创建了一个新类Properties When I
  • 路口观察器 polyfill 无法在 Safari 中工作

    我需要检测从另一个域加载的 iframe 是否在视口中 这在 Chromem Firefox 和 IE 中运行良好 称为 Intersection Observer 然而这在 Safari 中不起作用 为此创建了一个polyfill Git
  • 使用 Python Pandas 获取多个值来制作表格

    使用我的代码 我可以将两个 Excel 数据库连接到 1 中 问题是它只显示收入列 而不显示列展示次数 为了更清楚 我留下了代码和示例 我尝试过 df1 df1 pivot index Cliente columns Fecha value
  • Tomcat 基本 URL 重定向

    使用tomcat 如何获取请求http www mydomain example重定向到http www mydomain example somethingelse index jsp 我什至没有设法获得要显示的index htmlhtt
  • 使用 Wt C++ 框架的经验? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有人严重地用过Wt 效果好吗 您是否遇到过某些限制 或者优点 Wt http www webtoolkit eu wt是一个用于开
  • 将 XML 文档插入到另一个 XML 文档上的特定节点 (java)

    我有一个 XML1
  • Windows 7 - 来自 cmd 的 pydoc

    好吧 我正经历过这样的时刻 让我怀疑自己使用计算机的能力 这不是我想象中在我的第一篇 SO 帖子中提出的问题 但这里是 自从我在中断 10 年之后一直希望重新开始编程以来 我就开始学习 Zed 的新书 艰难地学习 Python 而 Pyth
  • 使用 Python37 运行时通过 Cloud Functions 生成缩略图

    我有一个由 Firebase 存储触发的 Google Cloud 函数 我想生成缩略图 虽然 Node js 文档有一个使用 ImageMagick 的示例 https cloud google com functions docs tu
  • 如何拦截全局资源加载?

    背景 我需要使用翻译 SDK Lokalise 文档here https docs lokalise com en articles 3487109 lokalise android sdk 2 0 beta 旨在从其服务器加载字符串资源
  • 简单循环的速度[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我用Java做了一个简单的循环只是为了测试速度 与 C 中的相同循环相比 它需要更多的时间 20亿次迭代大约需要6 5秒当它被执行时
  • 您可以使用未命名的命名空间来隐藏标头中的常量吗?

    我在头文件的命名空间中包含一些内联函数 目前无法将它们移动到 cpp 文件中 其中一些内联函数使用魔术常量 例如 Foo h namespace Foo const int BAR 1234 inline void someFunc Do
  • 如何授予 SQL Server 代理访问权限以便能够写入/修改系统文件?

    我的工作有一个存储过程 运行 BCP 来查询一些数据 如果我单独运行 QUERYOUT 命令 它就会起作用 但是 如果我尝试在作业中运行它 它会创建文件但 挂起 并且数据永远不会放入文件中 这会永远挂起 所以我通常终止 BCP exe 我的
  • 向 Laravel 的 Mailer 添加新的传输驱动程序

    我需要向 Laravel 的邮件包添加一个新的传输驱动程序 以便我可以通过默认情况下不支持的外部服务 Mailjet 发送电子邮件 编写传输驱动程序不会成为问题 但我找不到一种方法来连接并添加新的驱动程序 以便我可以继续正常使用 Larav
  • 将空行添加到文字输出 RMarkdown

    再会 我正在尝试使用导出到 Word 文档的 rmarkdown 文件创建会议摘要提交 我正在尝试找到一种在输出的word文档中插入空行的方法 我发现可以通过在 Markdown 文件末尾添加两个空格来插入换行符 但是 当您只需要一个空行时
  • Plotly:使用循环添加轨迹

    I just learn Plotly and I am trying to make my python code better This is my dataframe 为了形象化 这是我的代码 但我认为它可以通过 For 循环来完成
  • ASP MVC 3 RequireHttps 属性将所有链接更改为 https

    我有一个 ASP MVC 3 网站 其中包含反馈表并且应该需要 SSL 现在 我在名为 ContactUs 的控制器内有一个名为 反馈 的操作 负责查看和处理反馈 当我使用 RequireHttps 该操作上的属性 效果很好 并将 URL
  • Flask SQLAlchemy 无法在 venv 中设置属性错误[重复]

    这个问题在这里已经有答案了 我正在学习身份验证功能Flask SQLAlchemy 因此构建非常基本的应用程序 用户 属性 姓名 电子邮件和密码 能够注册和登录 重定向到虚拟个人资料页面 仅此而已 令人费解的行为是 如果我使用虚拟环境 我所
  • 如何让 TypeScript 从 node_modules 捆绑第 3 方库?

    我想要使 用 TypeScript 编译器node modules firebase firebase d ts检查我的代码并捆绑node modules firebase firebase js到我从 firebase 导入内容的一些文件
  • 将多个 Future[Seq] 连接成一个 Future[Seq]

    如果没有 Future 这就是我将所有较小的 Seq 组合成一个大 Seq 的方式flatmap category getCategoryUrlKey id Int Seq Meta main method val appDomains S
  • Python for ios解释器[重复]

    这个问题在这里已经有答案了 可能的重复 iOS 上的 Python 或 Ruby 解释器 https stackoverflow com questions 4772591 python or ruby interpreter on ios