2011-08-04 24 views
10

que utilizan python_select, parece que no cambia el pitón por defecto para la ejecución de secuencias de comandos, por ejemplo django-admin.py runserver (sin pitón delante).Macports ¿selecciona el intérprete de Python predeterminado para ejecutar scripts?

¿Cómo puedo cambiar esto?

+1

Creo que esto podría estar mejor situado en superusuario ... – thegrinner

+0

Es posible que se puede reemplazar por un '#!' Primera línea en los archivos .py. –

+0

Sí, uno puede anularlo por un '#!', De hecho, pero la pregunta del OP es específicamente sobre el intérprete predeterminado de Python. – fviktor

Respuesta

19

Hay /usr/bin/python, que suele ser anterior en la ruta (tiene una precedencia más alta) que la carpeta binaria de MacPort (/opt/local/bin/python). El guión python_select cambia solamente /opt/local/bin/python, así que hay que asegurarse de que no hay otra python binaria en su camino que tiene precedencia sobre ella.

solución (como root):

mv /usr/bin/python /usr/bin/python.orig 
ln -s /opt/local/bin/python /usr/bin/python 
port select --set python python26 

asegúrese de que sustituye python26 en la tercera línea con tu versión destinada Python.

que trabajó para mí hace unos días con MacPort 2.0.0. Si tiene una biblioteca MacPorts anterior, entonces debe actualizarla o usar python_select en lugar de port select --set python.

+2

Un enfoque más simple y seguro es colocar/opt/local/bin anteriormente en su RUTA. hacer esto una vez que usted puede hacer lo siguiente en shell bash: '' 'export PATH =/opt/local/bin: $ PATH''' o editar ~/.bash_profile y añada la línea al final del archivo. Por lo general es una mala idea de modificar el sistema de Python como si usted lo rompe, es posible romper las utilidades o herramientas en tu Mac que utilizan Python del sistema. Editar: formateo. –

+0

@MickT: Hice lo que sugirió, porque creo que es un mejor enfoque. Puedo verificar que '/ opt/local/bin' está en la parte superior de mi variable' PATH', pero cuando escribo 'which python', da una lista que comienza con'/usr/local/bin/python'. ¿Alguna idea de por qué 'which' está dando un orden diferente que el' PATH'? – jvriesem

+0

@jvriesem Si '' '/ usr/local/bin /' '' está primero en su ruta, entonces '' '/ usr/local/bin/python''' se encontrará primero en Python. ¿Estoy malentendiendo algo? Si lo estoy, publique el resultado de lo siguiente: echo $ PATH –

Cuestiones relacionadas