Ale*_*lex 18 python eclipse wxpython pydev
最近我升级到Snow Leopard,现在我无法运行使用wxPython构建的程序.我得到的错误是(来自Eclipse + PyDev):
import wx
File "/var/tmp/wxWidgets/wxWidgets-13~231/2.6/DSTROOT/System/Library/Frameworks
/Python.framework/Versions/2.6/Extras/lib/
python/wx-2.8-mac-unicode/wx/__init__.py", line 45, in <module>
File "/var/tmp/wxWidgets/wxWidgets-13~231/2.6/DSTROOT
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib
/python/wx-2.8-mac-unicode/wx/_core.py", line 4, in <module>
ImportError:/System/Library/Frameworks
/Python.framework/Versions/2.6/Extras/lib/python
/wx-2.8-mac-unicode/wx/_core_.so: no appropriate 64-bit architecture
(see "man python" for running in 32-bit mode)
Run Code Online (Sandbox Code Playgroud)
我真的不了解他们,如果你能帮助我这样做,我会很感激,如果你知道发生了什么,我该怎么办呢?也许这与Snow Leopard是64位的事实有关?
谢谢!!
Mic*_*yan 25
问题是WxPython仅在32位模式下在Mac上可用; 但是,默认情况下,Python将以64位模式启动.要解决此问题,请创建以下名为的shell脚本python_32:
#! /bin/bash export VERSIONER_PYTHON_PREFER_32_BIT=yes /usr/bin/python "$@"
使脚本可执行(chmod a+x python_32)并将脚本放在路径中.现在,只需调用python_32以获得一个交互式Python控制台,您可以在其中使用WxPython.如果你想编写一个使用它的Python脚本,你可以使用shebang : #! /usr/bin/env python_32.
现在解释......基本问题是32位和64位代码使用不同的应用程序二进制接口(ABI),因此32位代码和64位代码不能共存于同一个库/可执行文件/进程中.为了支持64位模式,它需要在64位模式下编译; 同样,为了支持32位模式,它需要在32位模式下编译.在OS X下,可以使用通用二进制文件来支持两者......但是,它需要在两种模式下编译(然后合并).WxWidgets可能使用Carbon,它只能在32位模式下使用(Cocoa可用于32位和64位模式...... Apple并不打算在两种模式下都使用Carbon,因为它已被弃用),这可以解释为什么WxPython反过来只能以32位模式提供.反过来,这意味着在Python中使用它需要您以32位模式启动Python(Python是一个通用二进制文件,其32位和64位版本本身可在同一个二进制文件中使用,因此它可以是以任一模式启动).
替代选项
我不建议这样做,因为我认为您应该保留默认值,但是因为您可能没有足够的shell脚本知识(您需要使用"./python_32"或将其放在一个文件夹中)在"$ PATH"环境变量中列出并调用它作为"python_32")以遵循前一个选项,您可能只想执行以下命令,这将使32位模式成为默认值:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
如果您决定要切换回64位模式,则可以使用以下命令:
defaults write com.apple.versioner.python Prefer-32-Bit -bool no
请注意,这两个命令都将在终端上执行(不在Python中).
来源
我应该指出,两个推荐都基于Mac OS X 上的man python.所以,如果你有任何其他问题,你肯定应该阅读手册页,因为错误信息已经催促你这样做了.
Mik*_*oll 15
虽然我看到这已经得到了回答,但答案有点错误.2.9系列DOES具有Mac 64位版本,尽管仅适用于Python 2.7.请参阅http://wxpython.org/download.php并查找Cocoa构建.从我在wxPython邮件列表和IRC频道上收集到的内容,您将需要从python.org下载Python 64位版本,而不是使用包含Mac的蛇.
| 归档时间: |
|
| 查看次数: |
13081 次 |
| 最近记录: |