/ usr / bin / python vs /opt/local/bin/python2.7 en OS X

¿Puede arrojar algo de luz sobre la interacción entre el intérprete de Python distribuido con OS X y el que se puede instalar a través de MacPorts?

Al instalar networkx y matplotlib , estoy teniendo dificultades con la interacción de /usr/bin/python y /opt/local/bin/python2.7 . (Este último es en sí mismo un puntero suave a /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 )

¿Cómo puedo estar seguro de qué bibliotecas de Python, pip y Python estoy usando a la vez?

Más importante aún, parece que la instalación de matplotlib no es posible en Lion. Falla con Requires numpy 1.6 or later to build. (Found 1.5.1) Requires numpy 1.6 or later to build. (Found 1.5.1) . Si actualizo ejecutando sudo pip install --upgrade numpy , no ayuda. Posteriormente, el bash de instalar matplotlib ( sudo /usr/local/bin/pip install matplotlib ) aún falla con el mismo mensaje ( Requires numpy 1.6... ). ¿Cómo puedo instalar matplotlib?

Puntos a tener en cuenta sobre Python

  • Si un script foobar.py comienza con #!/usr/bin/env python , entonces siempre obtendrás el OS X Python. Ese es el caso a pesar de que MacPorts pone /opt/local/bin delante de /usr/bin en su camino. La razón es que MacPorts usa el nombre python2.7 . Si desea usar env y, a la vez, usar MacPorts Python, debe escribir #!/usr/bin/env python2.7 .
  • Si un script foobar.py comienza explícitamente con #!/usr/bin/python o con #!/opt/local/bin/python2.7 , se utilizará el intérprete de Python correspondiente.

Lo que hay que tener en cuenta sobre pip

  • Para instalar pip para /usr/bin/python , debe ejecutar sudo /usr/bin/easy_install pip . Luego llama a pip (que no se instalará con easy_install en /usr/bin/pip , sino en /usr/local/bin/pip )
  • Para instalar pip para /opt/local/bin/python2.7 , necesita ejecutar sudo port install py27-pip . Entonces llamarías a pip-2.7 . Obtendrá el pip en /opt/local/bin . Tenga cuidado , ya que si escribe pip2.7 obtendrá /usr/local/bin/pip2.7 (el OS X pip).

Instalación de networkx y matplotlib

  • Para instalar networkx para OS X Python, debe ejecutar sudo /usr/local/bin/pip install networkx . No sé cómo instalar matplotlib en OS X Lion. Puede ser que OS X numpy 1.5.1 atenerse a numpy 1.5.1 porque lo usa internamente.
  • Para instalar networkx y matplotlib para MacPorts-Python, llame a sudo pip-2.7 install networkx y sudo pip-2.7 install matplotlib . matplotlib instala con muchas advertencias, pero pasa.

También puedo sugerir el uso de la distribución “anaconda” de Continuum Analytics. Un beneficio al hacerlo sería que no necesitará modificar el entorno estándar de python OS X.