为wxPython运行32位以上的python

2024-05-18 23:26:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Mac OS X雪豹上运行32位模式的python,我已经取得了一些成功,但是有以下奇怪之处。

如果我使用/usr/bin/python运行它,它似乎不想在32位模式下运行,但是如果我使用/usr/bin/python2.6运行它,它可以在32位模式下运行。就我之前所知,/usr/bin/python与/usr/bin/python2.6是相同的。有人知道为什么他们在这里会有不同的行为吗?

zrbecker:src$ /usr/bin/python --version
Python 2.6.1
zrbecker:src$ /usr/bin/python2.6 --version
Python 2.6.1
zrbecker:src$ arch -i386 /usr/bin/python2.6 -c 'import wx'
zrbecker:src$ arch -i386 /usr/bin/python -c 'import wx'
Traceback (most recent call last):
  File "<string>", line 1, 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/__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)

Tags: insrcbinusrlinelibrary模式framework
2条回答

在OSX10.6中,苹果提供了一种方法来永久地选择OSX中提供的Python2.6是在64位模式下运行还是在32位模式下运行(VERSIONER_PYTHON_PREFER_32_BIT)以及其他选项。有关详细信息,请参见man 1 python/usr/bin/python程序是该程序的前端,它检查通过defaultplists或环境变量设置的所选选项,并在所选模式下生成所需的解释器版本,而不管包装程序是在何种模式下启动的(例如通过arch)。/usr/bin/python2.6是标准OS X pythonw程序的一个稍加修改的版本,它以自身启动的模式启动解释器。2.6的标准python.org发行版没有类似的代码。在较新版本的Python,2.7和3.2中,pythonw可执行文件也遵循其启动模式,因此arch -i386可以工作。

顺便说一句,苹果将各种开源产品(包括Python)的源代码here与用于构建它的定制补丁一起集成到OS X版本中。

做:

file /usr/bin/python /usr/bin/python2.6
ls -l /usr/bin/python /usr/bin/python2.6

你应该发现它们是不同的可执行文件,而不仅仅是符号链接。

相关问题 更多 >

    热门问题