python - py2app bundle 中的 Twisted Core Foundation Reactor 和 CFNetwork

标签 python cocoa twisted pyobjc py2app

我正在制作一个 Python/PyObjC bundle ,以使用 Objective-C 应用程序中的一些 Twisted 功能。

我需要在我的 Python 应用程序中安装 Core Foundation Reactor:

from twisted.internet import cfreactor
cfreactor.install()

问题是,当我使用 py2app 构建 bundle 时,所需的 CFNetwork 框架永远不会出现在我的 bundle 中,并且当我从 Objetive-C 应用程序加载该 bundle 时,它会崩溃。

有什么方法可以强制链接CFNetwork框架吗? 为什么这个框架没有自动添加?

最佳答案

包含未自动检测到的包很容易:只需将缺少的模块添加到 setup.py 文件即可:

setup(
   ...
   options=dict(
      py2app=dict(
        includes=["module1", "module"],
      ),
   ),
   ...
)

我不知道为什么 CFNetwork 没有自动包含,cfreactor 的代码不应该以这种方式混淆 py2app(也就是说,导入是使用常规导入语句完成的,并且不会隐藏在 C 代码或>导入调用)。

您可以使用一个小型示例项目(例如一个简单的 SystemPreferences 插件)重现该问题吗?这将使调试问题变得更加容易。

另外,您使用哪些版本的 Twisted、PyObjC 和 py2app?

关于python - py2app bundle 中的 Twisted Core Foundation Reactor 和 CFNetwork,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14956242/

相关文章:

python - 在 Python 中使用多个条件过滤数据的最佳算法

python - Django 使用 tweepy oauth 出现属性错误

python - 如何像使用 R 语言一样在热图单元格上添加十字(X)?

python - 使用os.system调用PowerShell时出错

cocoa - 防止 NSButtonCell 图像在其包含的 NSScrollView 之外绘制

objective-c - 单击表行时,Cocoa 绑定(bind) "Selection"不会更改

Python,多线程,抓取网页,下载网页

python - 为什么需要 Twisted?

python - 扭曲插件错误

ios - 架构 i386 的 undefined symbol : trying to add in AVFoundation