El problema es que WxPython solo está disponible en la Mac en el modo de 32 bits; sin embargo, de manera predeterminada, Python se iniciará en el modo de 64 bits. Para solucionar este problema, cree el siguiente script de shell llamado python_32
:
#! /bin/bash
export VERSIONER_PYTHON_PREFER_32_BIT=yes
/usr/bin/python "[email protected]"
Haga el script ejecutable (chmod a+x python_32
) y coloque la secuencia de comandos en su camino. Ahora, simplemente invoque python_32
para obtener una consola de Python interactiva en la que pueda usar WxPython. Si desea escribir un script de Python que lo use, puede usar el shebang: #! /usr/bin/env python_32
.
Ahora, explicar ... el problema básico es que el código de 32 bits y 64 bits utiliza una interfaz binaria de aplicación diferente (ABI), por lo que el código de 32 bits y el código de 64 bits no pueden coexistir en la misma biblioteca/ejecutable/proceso. Para admitir el modo de 64 bits, debe haber sido compilado en modo de 64 bits; Del mismo modo, para admitir el modo de 32 bits, debe haber sido compilado en modo de 32 bits. En OS X, es posible utilizar binarios universales para admitir ambos ... sin embargo, debe compilarse en ambos modos (y luego fusionarse). WxWidgets probablemente usa Carbon, que solo está disponible en modo de 32 bits (Cocoa está disponible en modo de 32 bits y de 64 bits ... Apple no se molestó en hacer que Carbon estuviera disponible en ambos modos, ya que está en desuso), lo que explicaría por qué WxPython, a su vez, solo podía proporcionarse en modo de 32 bits. Esto, a su vez, significa que usarlo en Python requiere que inicie Python en modo de 32 bits (Python es un binario universal con sus propias versiones de 32 bits y 64 bits disponibles en el mismo archivo binario, por lo que puede ser lanzado en cualquier modo).
Opción Alternativa
No recomiendo hacer esto, porque creo que debe dejar los valores por defecto, ya que son, pero ya que puede que no tenga suficiente conocimiento de secuencias de comandos shell (tiene que utilizar" ./python_32" o colóquelo en una carpeta que se enumera en su variable de entorno "$ PATH" y lo invoque como "python_32") para seguir la primera opción, puede ejecutar simplemente el siguiente comando que hará que el modo de 32 bits sea el predeterminado:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
Si decide que desea cambiar de nuevo en modo de 64 bits, a continuación, puede utilizar el siguiente comando:
defaults write com.apple.versioner.python Prefer-32-Bit -bool no
Tenga en cuenta que ambos comandos deben ejecutarse en la Terminal (no dentro de Python).
Fuente
Debo señalar que ambas recomendaciones se basan en man python en Mac OS X. Por lo tanto, si usted tiene cualquier otra pregunta, debería leer la página del manual como el mensaje de error que ha instado a hacer .
¿Está pensando en decirnos sus resultados o votar una respuesta? –