问题标签 [py2app]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2470 浏览

python - 创建一个简单地在启动时打开终端的 Python/py2app 应用程序?

我编写了一个不错的 Python 应用程序,它基本上是 SMS 调制解调器的 HTTP 代理,我想让它成为 Mac 上的可双击应用程序。到目前为止,我一直在包含一个可双击的 .commmand 文件,它基本上包括

如何使主要的 .app 可执行文件调用不同的位置/或者制作基本上是终端实用程序的包装器并且只显示其输出的应用程序的最简单方法是什么?目前双击应用程序将使用 Mac 上的打开实用程序 - 我想模拟双击应用程序图标时双击 Contents/MacOS/slingshotsms 的行为。有小费吗?

0 投票
2 回答
351 浏览

python - 使用 py2app 时,有没有办法自定义显示的回溯对话框?(或者显示不同的 Cocoa 对话框?)

是否有一种简单的方法可以进一步控制 py2app 回溯对话框,或者只是一种显示 GUI 消息的好方法?

如果我在我的 py2app 脚本中引发异常,我会得到一个对话框,内容如下:

MyAppName 错误

MyAppName 错误

执行主脚本期间发生意外错误

MyRaisedError:这是我在引发错误时可以控制的文本。

它有打开控制台终止按钮。我的脚本需要检查驱动器中是否有某个 DVD,如果不是,我想显示一个错误对话框并退出。我希望对它有更多的控制权,因为我只能更改一些文本而无法控制按钮。

我尝试通过 applescript 调用 osascript 来执行“显示对话框”,但它给了我这样的错误:0:19:执行错误:不允许用户交互。(-1713) 我不是特别喜欢这种方式,但如果这是我能做的...

我真的不希望包含像Cocoa Dialogs这样的大项目或 PyObjC 项目之类的东西......脚本本身非常小,我看不到添加 10 倍的脚本内容只是为了获得对话框。

0 投票
3 回答
1237 浏览

python - py2app 和 xml.etree.ElementTree

我正在尝试使用 Python 的内置 xml.etree.ElementTree 类构建一个使用一些 xml 数据的应用程序。当我从命令行运行时它可以正常工作,但是当我构建它时,我得到一个错误“ImportError: No module etree.ElementTree”。我猜这是因为我没有正确导入该模块,但我无法弄清楚如何。当我使用“includes”或“packages”指令时,py2app 会抱怨同样的错误,当我特别指定 package_dir (/System/Library/...) 时,它会编译,但仍然给我错误。我提供了一个简短的例子来说明这个问题。

macxml.py

这应该打印出“< Element Library at xxxxxx>”,其中 Library 是根名称。

安装程序.py

使mac应用程序利用这个库的正确方法是什么?

Python 2.6.4

Mac OS X 10.6.2

编辑:我也在另一台 Mac (PPC 10.5.8) 上使用 Python 2.6.2 进行了尝试,并取得了相同的结果。

0 投票
1 回答
239 浏览

python - py2app 找不到 BeautifulSoup

我有一个使用BeautifulSoup的脚本,我想使用py2app将它制作成一个独立的应用程序。当我运行 py2app 制作的应用程序时,我收到一条错误消息,提示找不到模块 BeautifulSoup。我的 sys.path 有 '/Library/Python/2.6/site-packages/BeautifulSoup-3.1.0.1-py2.6.egg' 所以它似乎应该在那里,有什么建议吗?

0 投票
2 回答
2221 浏览

py2app - py2app 是否支持 python3?

我已经使用 python 3.1.1 和 pyqt 4.6 在 Windows 中开发了一个应用程序。只是想知道我可以使用 py2app 将它作为 Mac OS 中的独立应用程序吗?py2app 是否支持 python 3.1.1。

我在这里发布问题bcoz。他们的任何文件中都没有特别提到..

提前致谢..

0 投票
1 回答
601 浏览

python - py2app 规定

py2app 文档提到__boot__.py了在主要 python 脚本之前运行的prescripts。我找不到在 setup.py 文件或构建过程中轻松指定任何指令的方法。

但是,我确实设法__boot__.py手动“破解”并_run(prescript)在我的主要命令之前添加了另一个命令_run(main_script),它似乎工作正常。然而,使用标准的 py2app 构建过程会更好。

我实际上想做的是在启动主脚本之前对我的 sites-packages.zip 文件进行猴子补丁。该指令主要检查服务器上的更新,如果有,下载它们,然后覆盖 site-packages.zip 文件。比从头开始重新安装应用程序要快得多。

有任何想法吗?

0 投票
2 回答
1233 浏览

python - 将 Python 应用程序捆绑为单个文件以支持附加组件或扩展?

有几个实用程序——都具有不同的过程、限制和目标操作系统——用于获取 Python 包及其所有依赖项并将它们转换为易于交付给客户的单个二进制程序:

我的情况更进一步:第三方开发人员希望为我的应用程序编写插件、扩展或附加组件。当然,这是一个令人生畏的问题,在 Windows 等平台上的用户如何最轻松地安装插件或插件,以使我的应用程序可以轻松地发现它们已安装。但除了这个基本问题之外还有另一个问题:第三方开发人员如何将他们的扩展与扩展本身需要的任何库(可能是二进制模块,如 lxml)捆绑在一起,以使插件的依赖项可以同时导入插件可用的时间。

如何解决这个问题?我的应用程序是否需要在磁盘上拥有自己的插件区域和自己的插件注册表才能使其易于处理?或者是否有一般机制,我可以避免自己编写,这将允许作为单个可执行文件分发的应用程序环顾四周并找到也作为单个文件安装的插件?

0 投票
3 回答
2970 浏览

python - 如何在纯 Python 应用程序包中更改 OSX 菜单栏中的应用程序名称?

我正在尝试为 wxPython 应用程序创建一个纯 Python 应用程序包。我使用 Apple 文档中描述的文件、Info.plist 文件等创建了 .app 目录。“普通”应用程序和此捆绑包之间的唯一区别是入口点 (CFBundleExecutable) 是一个以以下内容开头的脚本线:

一切正常,除了 OSX 菜单栏中的应用程序名称仍然是“Python”,尽管我在 Info.plist 中设置了 CFBundleName(实际上是我复制了 py2app 的结果)。完整的 Info.plist 可以在这里查看

我怎样才能改变这个?我到处读到菜单栏名称仅由 CFBundleName 确定。Python解释器怎么可能在运行时改变它?

注意:我之前使用的是 py2app,但结果太大(>50 MB 而不是当前的 100KB),而且它甚至不能在 Leopard 和 Snow Leopard 之间移植......所以创建一个纯 - Python 应用程序包“手动”而不是转换 py2app 的输出。

0 投票
1 回答
933 浏览

python - py2app、pyObjc 和 macports 编译错误

我目前正在编写一个使用py2app 嵌入cherrypy 和django 的小型python 应用程序。在我尝试将 pyobjc 包含在我的项目中之前,它运行良好,因为我的应用程序需要一个小 GUI(它由顶部菜单栏中的一个小图标 + 一个下拉菜单组成)。

我可以毫无问题地运行我的 python 脚本(我正在使用带有 macports 的 python 2.6),但我无法启动由 py2app 生成的应用程序包。将出现一个对话框,其中包含以下消息:

我做了一个快速的:

但由于某种原因,macports 尝试构建 openssl,每次编译都会失败。似乎问题与 zLib 有关 - 这是日志中出现的内容:

...这是输出file /opt/local/lib/libz.dylib

在我看来没有什么不对。

我有点卡在这里。我什至不明白 openssl 与 pyObjc 有什么关系,但如果我不设法编译它,我似乎哪儿也去不了。Macports 有时真的很糟糕:/

编辑我设法解决了 Macports 问题,但不是 py2app 一个:/

0 投票
4 回答
1931 浏览

python - 在 OSX 10.6.3 上使用 Python2.6 找不到 Evt.TickCount()

在 Python2.6 中,Evt 模块(来自 Carbon 导入 Evt)似乎没有响应 OSX 上的 TickCount()。但是Python2.5很好:

在 Python2.5 上,我得到一个返回的整数。在 Python2.6 上,我得到:

这是在雪豹上。是否有一些库需要在 OSX 上更新以允许 TickCount() 工作?由于使用py2app,我实际上遇到了这个问题。

Barry 的回答更新: 问题是 py2app 创建的应用程序在启动时给了我:

我在我的 .bash_profile 中添加了 VERSIONER_PYTHON_PREFER_32_BIT=yes,但是 py2app 创建的应用程序仍然存在同样的问题。然而,python 解释器对 32 位修复很满意。但是仍然需要py2app的解决方案。