2010-09-02 9 views
8

En esta página de ayuda¿Por qué no puedo cambiar la pitón predeterminada del sistema de la forma en que Apple dice que puedo?

http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/python.1.html

Apple dice:

Cambio de la PYTHON DEFAULT

Usando

 % defaults write com.apple.versioner.python Version 2.5 

hará que la versión 2.5 el valor por defecto del usuario cuando se ejecuta el ambos, el comandos python y pythonw (versioner es el nombre interno del software de selección de versión utilizado).

Esto simplemente no funciona!

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 

y tampoco lo hace el interruptor para hacer de 32 bits pitón el valor predeterminado

64-BIT SUPPORT

Versión 2.6 soporta la ejecución de 64 bits (que es por defecto). La versión 2.5 solo es compatible con la ejecución de 32 bits.

Al igual que la versión de Python, el comando python puede seleccionar entre 32 y la ejecución de 64 bits (cuando ambos están disponibles). Uso:

 % defaults write com.apple.versioner.python Prefer-32-Bit -bool yes 

hacer la ejecución de 32 bits por defecto del usuario (utilizando /Library/Preferences/com.apple.versioner.python establecerá el valor por defecto para todo el sistema). La variable de entorno VERSIONER_PYTHON_PREFER_32_BIT puede también se pueden usar (tiene precedencia sobre el archivo de preferencia): conchas

 % export VERSIONER_PYTHON_PREFER_32_BIT=yes # 

Bourne-similares o

conchas
 % setenv VERSIONER_PYTHON_PREFER_32_BIT yes # 

C-como

I' m abajo un rathole aquí. Estoy tratando de ejecutar wxpython. Pero no se ejecutará en Apple Python 2.7 porque no hay soporte de carbono de 64 bits, y el soporte de cacao aún no está terminado en wx.

=== === ACTUALIZACIÓN

Gracias por toda su ayuda! El misterio ha sido resuelto. Una cosa que me confundió es que no tuve problemas para ejecutar wxpython (32 bits) en mi computadora portátil (un i5 macbook pro reciente), pero no se ejecutaría en mi escritorio (un i7 mac pro reciente).

Ambos tenían Python 2.7, y supuse que era lo mismo. ¡Pero no fue así!

El Mac Pro tenía la x86_64 construir

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 

y el portátil no lo hizo:

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 

voy a volver a instalar el que no tiene la versión x86_64 en mi máquina de escritorio, como Aún no necesito soporte de 64 bits.

+0

Hola, ¿cómo puedo instalar Python i386? – Believe2014

Respuesta

3

Creo que la versión de python que se envía con OS X 10.6 es 2.6. El hecho de que su línea de comando diga que es 2.7 significa, si lo entiendo correctamente, que instaló 2.7 de alguna otra manera. (Tal vez macports, fink o compilado directamente.) Esas python no provistas por Apple generalmente no son compatibles con el sistema de versiones de Apple. ¿Podrías ejecutar lo siguiente?

$ which python 

qué dice /usr/bin/python?

+1

De hecho, también podría configurarse en uno de los archivos de puntos del usuario. Pruebe 'echo $ PATH' para ver si Python 2.7 está allí en alguna parte. –

+0

Si ejecutar 'which python' no devuelve '/ usr/bin/python', ¿cuál es la solución? – mrsoltys

12

defaults write com.apple.versioner.python y VERSIONER_PYTHON_PREFER_32_BIT son los cambios desarrollados por Apple y se aplican solamente a la Apple-/usr/bin/python suministrado en OS X 10.6 (Python 2.6.1). (ACTUALIZACIÓN: Esto también se aplica a OS X 10.7 Lion). Es probable que haya instalado un Python 2.7 utilizando uno de los instaladores de python.org. Hay dos instaladores 2.7 disponibles actualmente en python.org, uno (para 10.5 y superior) incluye soporte tanto de 32 bits como de 64 bits. El segundo (para 10.3 y superior, incluyendo 10.6) es solo de 32 bits. Presumiblemente, instalaste el primero. Para hacer que se ejecute en modo de 32 bits, se puede invocar utilizando el comando arch:

$ arch -i386 python2.7 

O, si siempre desea utilizar 32 bits, puede volver a instalar 2.7 usando el otro instalador. Tenga en cuenta que el instalador de 64 bits de python.org es nuevo en 2.7. Y, desafortunadamente, hay algunos problemas con esto, es decir, Tkinter y los programas que lo usan (incluido IDLE) fallan en OS X 10.6. Eso se remediará en una actualización de mantenimiento. Si los necesita en la versión 10.6, por el momento, adhiérase al instalador de 32 bits.

Lo más probable es la razón de que el comando python ahora invoca 2.7 es que el instalador python.org actualiza los perfiles de inicio de sesión, como .bash_profile poner su directorio bin primer marco a su búsqueda cáscara 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 
Cuestiones relacionadas