从ObjectiveC调用Python代码

2024-09-25 06:32:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找从Objective-C程序调用Python代码的最佳方法。 一些细节:

  • Python的代码根本不使用PyObjC,只使用Python的基础知识。在
  • 有几个Python的文件都具有相似的功能(又称“主题变体”)。在

NSBundle公司

首先想到的是将每个*.py封装到*.bundle中。在

在Python类.py公司名称:

import objc
NSObject = objc.lookUpClass('NSObject')

class PythonClass(NSObject):
    def Function(self):
        print("Python is speaking!")

在设置.py公司名称:

^{pr2}$

终端命令:python setup.py py2app -s -p objc

它工作正常,但有几个问题:

  • 大*束大小。即使Foundation is not imported,并且bundle是半独立的(标志“-s”),但是*.bundle的大小是~1MB。有没有其他方法可以缩小尺寸?在
  • PyObjC依赖性。类不使用objc,但是如果我们没有子类NSObject,那么在Objective-C端,[bundle principalClass]是{},并且{}不能被实例化。有没有办法避免在*.py中使用NSObject?在

循环流化床

{{8}也不总是在使用

有没有更好的方法将Python嵌入Objective-C中?在


Tags: 文件方法代码py程序名称is公司
1条回答
网友
1楼 · 发布于 2024-09-25 06:32:40

使用Python /C API(Python和C之间的一个桥)、调用Python代码的C++类(OOP层,便于管理),以及将C++类放入CFBeA中的A1}方法。在

如有必要,这也适用于动态库(*.dylib)而不是CFBundle。在

相关问题 更多 >