在此帮助页面上
http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/python.1.html
Apple说:
改变默认的PYTHON
运用
Run Code Online (Sandbox Code Playgroud)% defaults write com.apple.versioner.python Version 2.5运行python和pythonw命令时,将使版本2.5成为用户默认值(versioner是所用版本选择软件的内部名称).
这根本行不通!
tppllc-Mac-Pro:~ swirsky$ python --version
Python 2.7
tppllc-Mac-Pro:~ swirsky$ defaults write com.apple.versioner.python Version 2.5
tppllc-Mac-Pro:~ swirsky$ python --version
Python 2.7
Run Code Online (Sandbox Code Playgroud)
并且切换不使32位python成为默认值
64位支持
版本2.6支持64位执行(默认情况下处于启用状态).2.5版仅支持32位执行.
与Python的版本一样,python命令可以在32位和64位执行之间进行选择(当两者都可用时).使用:
Run Code Online (Sandbox Code Playgroud)% defaults write com.apple.versioner.python Prefer-32-Bit -bool yes使用户默认的32位执行(使用
/Library/Preferences/com.apple.versioner.python将设置系统范围的默认值).VERSIONER_PYTHON_PREFER_32_BIT也可以使用环境变量 (优先于首选项文件):Run Code Online (Sandbox Code Playgroud)% export VERSIONER_PYTHON_PREFER_32_BIT=yes #像伯恩一样的贝壳或
Run Code Online (Sandbox Code Playgroud)% setenv VERSIONER_PYTHON_PREFER_32_BIT yes #C型贝壳
我在这里下了一个rathole.我正试图让wxpython运行.但它不会在Apple Python 2.7上运行,因为没有64位碳支持,而且可靠性支持尚未在wx中完成.
===更新===
感谢你的帮助!这个谜团已经解决了.令我困惑的一件事是我在我的笔记本电脑(最近的i5 macbook pro)上运行(32位)wxpython没有问题,但它不能在我的桌面上运行(最近的i7 mac pro).
他们都有python 2.7,我认为它是相同的.但事实并非如此!
Mac Pro有x86_64版本
tppllc-Mac-Pro:~ swirsky$ file `which python`
/Library/Frameworks/Python.framework/Versions/2.7/bin/python: Mach-O universal binary with 3 architectures
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture i386): Mach-O executable i386
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture ppc7400): Mach-O executable ppc
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
Run Code Online (Sandbox Code Playgroud)
而笔记本电脑没有:
thrilllap-2:thrillscience swirsky$ file `which python`
/Library/Frameworks/Python.framework/Versions/2.7/bin/python: Mach-O universal binary with 2 architectures
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture ppc): Mach-O executable ppc
/Library/Frameworks/Python.framework/Versions/2.7/bin/python (for architecture i386): Mach-O executable i386
Run Code Online (Sandbox Code Playgroud)
我将在我的桌面计算机上重新安装没有x86_64版本的那个,因为我还不需要64位支持.
Ned*_*ily 12
defaults write com.apple.versioner.python并且VERSIONER_PYTHON_PREFER_32_BIT是Apple开发的更改,仅适用/usr/bin/python于OS X 10.6(Python 2.6.1)中提供的Apple .(更新:这也适用于OS X 10.7 Lion.)您可能使用其中一个python.org安装程序安装了Python 2.7.python.org目前有两个2.7安装程序,一个(10.5及以上)包括32位和64位支持.第二个(10.3及以上,包括10.6)仅为32位.据推测,你安装了第一个.要让它以32位模式运行,您可以使用以下arch命令调用它:
$ arch -i386 python2.7
Run Code Online (Sandbox Code Playgroud)
或者,如果您始终要使用32位,则可以使用其他安装程序重新安装2.7.请注意,python.org中的64位安装程序是2.7中的新增功能.不幸的是,它有一些问题,即Tkinter使用它的程序(包括IDLE)在OS X 10.6上失败了.这将在维护更新中得到纠正.如果您在10.6上需要它们,请立即坚持使用32位安装程序.
很可能是命令python现在调用2.7 的原因是python.org安装程序更新了您的登录配置文件,比如.bash_profile将其框架bin目录放在shell搜索上PATH.
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin: # ...
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ /usr/bin/python
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
$ python
Python 2.7 (r27:82508, Jul 3 2010, 21:12:11)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
$ python -c 'import sys;print("%x"%sys.maxint)'
7fffffffffffffff
$ arch -x86_64 python -c 'import sys;print("%x"%sys.maxint)'
7fffffffffffffff
$ arch -i386 python -c 'import sys;print("%x"%sys.maxint)'
7fffffff
Run Code Online (Sandbox Code Playgroud)
python我认为OS X 10.6 附带的版本是2.6. 事实上,你的命令行显示它是 2.7,如果我理解正确的话,意味着你通过其他方式安装了 2.7。(也许是 macports、fink 或直接编译。)那些非 Apple 提供的 python 通常不支持 Apple 的版本系统。你能运行以下命令吗?
$ which python
Run Code Online (Sandbox Code Playgroud)
有说吗/usr/bin/python?
| 归档时间: |
|
| 查看次数: |
9170 次 |
| 最近记录: |