【问题标题】:wxPython via py2app: "no appropriate 64-bit architecture" ERROR even though 32-bit preference setwxPython via py2app:“没有适当的 64 位架构”错误,即使设置了 32 位首选项
【发布时间】:2016-01-13 18:45:11
【问题描述】:

在 OS X Lion 上安装 wxPython(最新)后,尝试在解释器中输入 import wx 会导致:

  File "wx/__init__.pyc", line 45, in <module>
  File "wx/_core.pyc", line 4, in <module>
  File "wx/_core_.pyc", line 18, in <module>
  File "wx/_core_.pyc", line 11, in __load
ImportError: /Users/Pyderman/Downloads/e30356784638/dist/Program.app/Contents/Resources/lib/python2.6/lib-dynload/wx/_core_.so: no appropriate 64-bit architecture

所以按照man python给出的说明,我设置了:

export VERSIONER_PYTHON_PREFER_32_BIT=yes

然后 wx 的导入工作(在解释器中)。然而,当我使用 py2app 将程序捆绑到 OS X 应用程序中时,错误再次发生,即使我尝试在将环境变量设置为首选 32 的同一终端中启动该应用程序少量。

我猜 py2app 不知何故“不知道”首选 32 位?但是如何做到这一点,又如何执行或控制呢?

【问题讨论】:

标签: python python-2.7 wxpython python-import py2app


【解决方案1】:

让我稍微扩展一下 Steve C 所说的话...简单的解决方案是按照 Ned 的建议 here

仅从 python 网站安装 Python 32 位

一个稍微更困难但从长远来看可能更有效的方法是使用 fviktor 建议的类似方法将架构类型设置为 32 位。这将删除除 i386 架构之外的所有内容,因此它不会尝试加载任何那些讨厌的 64 位版本。

来自 fviktor 的同上来源:

ditto --rsrc --arch i386 YourApplication.app YourApplicationStripped.app

如前所述,它删除了所有非 32 位“东西”,从而降低了包大小并确保它永远不会尝试加载 64 位架构。

如果您想要 32 位和 64 位架构可用,您可以将架构的优先级设置为以 32 位为主。为此,请编辑 Py2App 创建的 Info.plist。这里有 4 个选项,ppc 是 32 位 powerPC 架构,i386(我相信更常用)32 位架构,然后是两种不同的 64 位架构,x86_64 和 ppc64。

您的大部分问题都可以回答here,但我相信它已经足够不同了,它可能会帮助人们更好地了解未来发生的事情。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2021-08-28
    相关资源
    最近更新 更多