问题标签 [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 投票
1 回答
1027 浏览

python - 带有 psutil 模块的 Python py2app

我有一个 Python 应用程序,我正在尝试制作一个使用 py2app 的独立版本。但是,当我执行 .app 文件时,它会因以下错误而终止

ImportError: No module named _psutil_osx

这是一个示例应用程序(test.py),它有同样的问题,但在我运行时运行良好python test.py

然后我从终端运行以下命令

这是来自控制台的错误日志

似乎导入 psutil 就好了,但是其中一个子包是 _psutil_osx 并且没有被导入。知道为什么不包括在内吗?我也尝试将它添加到我的 include 和 setup.py 文件中,但无济于事。提前致谢

0 投票
4 回答
645 浏览

python - py2app 在构建过程中获取包的 .git 子目录

我们在我们的设施中广泛使用 py2app 来生成自包含的 .app 包,以便于内部部署而不会出现依赖性问题。我最近注意到但不知道它是如何开始的,那就是在构建 .app 时,py2app 开始包含我们主库的 .git 目录。

例如,commonLib 是我们的根 python 库包,它是一个 git repo。在这个包下是各种子包,如数据库、实用程序等。

在一个给定的项目中,比如说 Foo,我们会像from commonLib import xyz使用我们的通用包一样进行导入。通过 py2app 构建看起来像:python setup.py py2app

所以我最近看到的问题是,在为项目 Foo 构建应用程序时,我会看到它包含 commonLib/.git/ 中的所有内容到应用程序中,这是额外的膨胀。py2app 有一个 excludes 选项,但这似乎只适用于 python 模块。我无法完全弄清楚排除 .git 子目录需要什么,或者实际上是什么导致它首先被包含在内。

有没有人在使用作为 git repo 的 python 包导入时遇到过这种情况?每个项目的 setup.py 文件没有任何变化,commonLib 一直是一个 git 存储库。所以我唯一能想到的变量是 py2app 的版本及其明显随着时间的推移而升级的 deps。

编辑

截至目前,我正在使用最新的 py2app 0.6.4。此外,我的 setup.py 是不久前从 py2applet 生成的,但此后一直手动配置并复制为每个新项目的模板。我对这些项目中的每一个都使用 PyQt4/sip,所以这也让我想知道它是否与其中一个食谱有问题?

更新

从第一个答案开始,我尝试使用各种exclude_package_data设置组合来解决此问题。似乎没有什么可以强制 .git 目录被排除在外。以下是我的 setup.py 文件的一般示例:

我试过这样的事情:

更新#2

我已经发布了我自己的答案,它在 distutils 上做了一个猴子补丁。它丑陋且不受欢迎,但在有人可以为我提供更好的解决方案之前,我想这就是我所拥有的。

0 投票
1 回答
10567 浏览

python - py2app 在使用 virutalenv 时没有将 Python.framework 复制到新应用程序

环境:MacOS X 10.7.2,系统安装python 2.7.1,virtualenv 1.7.2,pyobjc 2.3,py2app 0.6.4+

我有一个新创建的 virtualenv,安装了 pyobc 2.3 和 py2app。当我运行 python setup.py py2app 来创建一个应用程序(例如在 py2app/examples/simple 中)时,一切似乎都可以编译并且它确实生成了一个可双击的应用程序,但是在单击该应用程序后,我收到以下错误:

但是,如果我在 Lion 的标准安装中遵循相同的过程。该应用程序运行良好且符合预期。

关于如何使 virtualenv 和 py2app 相互配合的任何建议?

谢谢!

0 投票
4 回答
1993 浏览

python - py2exe/py2app 和 docx 不能一起工作

在 Windows 7 上安装 docx:

D:\Program Files (x86)\Python27\Lib\site-packages 如下图:

在此处输入图像描述

在 OS X 上的 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/docx-0.0.2-py2.7.egg-info 安装 docx,如下所示: 在此处输入图像描述

以下是示例脚本(名为 docx_example.py),它在 python 解释器上运行得非常好:

以下是用于创建独立(Mac OSX 中的 .app 和 Windows 7 中的 .exe)的安装脚本(名为 docx_setup.py):

现在真正的问题来了。

以下是尝试使用使用命令 python docx_setup.py py2app 创建的 docx_example.app 后在 Mac OS X 控制台上发布的错误:

以下是尝试使用使用命令 python docx_setup.py py2exe 创建的 docx_example.exe 后在 Windows 7 中的 docx_example.exe.log 文件中发布的错误:

如您所见,OS X 和 Windows 7 在这里都指的是类似的东西。请帮忙。

0 投票
1 回答
506 浏览

python - 如何告诉 py2app 使用/包含 32 位 Python(用于 wxPython)?

我正在使用 OS X Lion (10.7.3),并且正在尝试使用wxPythonpy2app.

我尝试使用 Lion 附带的 Python 2.7.1。

我得到了wxPython2.8二进制文件(wxPython2.8-osx-unicode-py2.7)。

py2app是通过 pip 安装的。

这是我的小测试应用程序:

这是我的setup.py

wxPython 2.8 想要 32 位模式,所以我使用arch命令:

如何告诉 py2app 使用/包含 32 位 Python?

可以手动交换应用程序包中的相关文件,但这是一个相当笨拙的解决方法。我也可以使用 64 位 wxPython2.9,但还没有稳定的版本可用。我应该切换到cx_Freeze? 这里的最佳做法是什么?

0 投票
1 回答
303 浏览

python - python 和 py2app mac osx 10.7

我想通过 Py2app 创建 .app 应用程序,我通过终端在我的 mac os x lion 上安装了 Py2app 并复制“gtkapp.py”(我使用 PyGTK 的应用程序的名称)和“setup.py”但是当我运行setup.py 得到这个错误:

什么问题?

0 投票
1 回答
645 浏览

sqlalchemy - py2app的SQLAlchemy mysql方言错误

通过 py2app 后,我无法让 SQLAlchemy 与我编译的应用程序一起工作。我已经在 Windows 中使用 py2exe 成功完成了这项工作。以下是我的设置文件:

这似乎是正确的方法,因为我已经看到人们将它用于 sqlite,但是在编译后尝试运行应用程序时我仍然收到此错误:

sqlalchemy.exc.ArgumentError: Could not determine dialect for 'mysql+mysqldb'

我最近一直在尝试使用 PyInstaller 并且几乎被困在同一个地方,尽管有一个不同的错误,如下所示:

0 投票
1 回答
1351 浏览

wxpython - Mac OSX Lion 上的 wxPython 和 py2app:无法导入 wx

我需要使用 wxPython 创建一个独立的 python 应用程序,以使用 Mac OSX Lion(客户端的操作系统)。我只能使用带有 Snow Leopard 的 Mac,并用它来使用 py2app 构建应用程序。使用 Snow Leopard 可以正常工作,甚至不需要安装 wxPython。

然而,在 OSX Lion 上,wx 导入失败(未找到模块),即使在为 python2.7(Carbon)安装了 wxPython 之后也是如此。我可以从终端导入 wx(使用默认的 python - 2.7),但应用程序仍然无法在导入时找到 wx。

我使用了以下 setup.py:

并使用arch -i386 /usr/bin/python2.6 setup.py py2app, 对其进行编译,以便能够在 32 位上运行它。

让它在 Lion 上运行、在 Snow Leopard 上编译的最佳方法是什么?我可以将 wxPython 包含在应用程序中,甚至包含 python 本身(以防它真的需要与 py2.6 一起运行)吗?我可以命令应用程序运行 /usr/bin/python2.6 吗?

0 投票
1 回答
557 浏览

python - py2app安装错误--Permission Denied

我真的很努力地安装 py2app,但是每当我在源代码上运行 install 命令时,我都会完成一半,然后我得到一个权限被拒绝的错误。有谁知道我该如何解决这个问题?我对我正在使用的机器拥有管理员权限。我正在使用管理员的配置文件进行安装......所以我真的很难过。任何帮助都是极好的。

我正在运行 Mac OS X 10.6.8 我正在使用 Python 2.7(64 位,但使用 32 位首选项运行)我正在使用 wxPython(32 位,因为这就是 wxPython 在 Mac 上必须提供的全部功能)

0 投票
1 回答
1576 浏览

python - py2app 将不包含 PySide 模块

简单的 hello world QT python 脚本。从命令行工作正常。当我打包它时,我得到:

所以听起来它不包括模块..但我尝试将它包括在 setup.py 和命令行中。没有任何作用:(

设置.py:

我尝试使用 --alias 选项和不使用创建。甚至尝试将它们标记为包裹。但我所做的一切似乎都没有包括它们。