Configurar Python como 32bit en Snow Leopard

Magna sorpresa el encontrarme que MySQL no funcionaba con Python tras actualizar a MacOSX 10.6 (en adelante SnowLeopard, que queda más kul), y mayor sorpresa aún descubrir que era debido a que se está ejecutando como aplicación de 64bit. Para hacer que Python se ejecute por defecto como una aplicación de 32bit simplemente cambiamos la configuración con el siguiente comando:

$ defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
(esto lo cambia sólo para el usuario en cuestión; para hacerlo en todo el sistema usaremos la clave '/Library/Preferences/com.apple.versioner.python')

Et voilá. También podemos hacerlo a través de una variable de entorno (cuyo valor toma preferencia sobre la clave anterior):

$ export VERSIONER_PYTHON_PREFER_32_BIT=yes

Compilar aplicaciones 32bit en amd64

Bienvenidos al fast-tip del día. Si por ejemplo teneís una aplicación que requiere ser compilada en 32bit (porque el target es 32bit o porque las librerías binarias que os facilitado son de 32bit) y vuestro sistema sigue una aruitectura amd64 os podéis encontrar con el siguiente mensaje de error al compilar:

/usr/bin/ld: saltando el [path a la librería encontrada] incompatible mientras se buscaba -l[librería]

La solución es bien sencilla:

  1. Nos aseguramos de tener instalado el paquete libc6_dev_i386 (y sus dependencias)
  2. Compilamos con la opción «-m32» en gcc
    • cc-m32 -o calculo calculo.c -ltpv

Have a nice day!