【问题标题】:Python "import wx" errorPython“导入 wx”错误
【发布时间】:2012-11-02 15:45:23
【问题描述】:

我最近安装了 python 2.7.3(从 2.6 开始),并且不小心在我的 Mac 上重新安装了 wxPython 2.8 unicode。现在,当我尝试导入 wx 时,我得到了

>>> import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/__init__.py", line 45, in <module>
    from wx._core import *
  File "/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core.py", line 4, in <module>
    import _core_
ImportError: dlopen(/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so, 2): no suitable image found.  Did find:
/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so: no matching architecture in universal wrapper

这是为什么?我做了defaults write com.apple.versioner.python Prefer-32-Bit -bool yes,而print("%x" % sys.maxsize, sys.maxsize &gt; 2**32) 仍然返回('7fffffffffffffff', True)。这是否意味着它在 64 位模式下运行?如果是这样,这就是我收到此错误的原因吗?

编辑:在 python2.6 中导入 wx 时也会发生这种情况。但是应该什么都没有改变,因为我有相同版本的 wxPython。

另一个编辑:使用arch,我确定发生这种情况是因为它在 64 位模式下运行。但是,尽管有Prefer-32-Bit -bool yes,但它是 64 位的。为什么会这样?我注意到 /usr/bin/python 仍然运行 2.6。

【问题讨论】:

    标签: python macos wxpython


    【解决方案1】:

    这绝对是架构不匹配。不要将 python 作为 32 位运行,而是在编译 wx 之前尝试设置此环境变量:

    export ARCHFLAGS='-arch x86_64'
    

    【讨论】:

    • “编译 wx”是什么意思?我在 Mac 上,wx 仅在 32 位上运行,因为它依赖于已过时且仅支持 32 位的 Carbon 框架。我从下载的包中安装了 wxPython。
    • 啊,我现在明白了。虽然仍然是错误的架构。试试arch -i386 python
    • 这行得通,但它似乎不是一个永久的解决方案。有没有办法强制 Python 以 32 位打开而不通过另一个(arch)程序管道? python -32 之类的东西?
    • 如果不是系统python,你应该可以在你的~/.profile中设置这个:export VERSIONER_PYTHON_PREFER_32_BIT=yes
    【解决方案2】:

    如果你想在 mac 中运行 Ride(robotframework),我想我也有同样的问题。你可以下载python版本(Mac OS X 32位i386/PPC安装程序),是的,你必须使用它而不是其他人。你可以从网上下载它:https://www.python.org/downloads/release/python-2711/.this是我在mac pro中运行的情况

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多