2009-11-21 18 views
19

TextMate parece usar la versión incorporada de Python, supongo (sys.path no funciona). ¿Cómo se configura para usar 3.1 en su lugar? Ya instalé el paquete 3.1 y puedo usar IDLE para sesiones interactivas, pero necesito usar TextMate ahora.Usando Python 3.1 con TextMate

Gracias

Respuesta

45

TextMate utiliza el valor de la variable TM_PYTHON para encontrar la ruta de acceso al intérprete de Python. Una buena solución es tomar ventaja de la capacidad de TextMate para definir las variables como TM_PYTHON en función de cada proyecto:

  1. abierto una nueva o existente Proyecto TextMate (File -> New Project o File -> Open)

  2. anular la selección de cualquier archivo en la barra lateral de la lista de proyectos.

  3. Haga clic en el icono Get Info (i) en la barra lateral. Aparece un panel Project Information.

  4. Haga clic en + para agregar una nueva variable.

  5. Ingrese TM_PYTHON en el campo Variable y la ruta completa a la python deseada en el campo Valor (por ejemplo, /usr/local/bin/python3.1).

  6. Cierre la ventana de información y guarde el proyecto (File ->Save Project As).

A continuación, puede añadir archivos según sea necesario para el proyecto y que se llevará a cabo bajo el pitón elegido con el comando Ejecutar secuencia de comandos de Python TextMate paquete. Es posible que desee guardar un proyecto Python 3, por ejemplo, para ejecutar scripts ad-hoc en Python 3. Para proyectos más grandes, querrá crear un proyecto de TextMate diferente para él de todos modos.

Para cambiar la versión de Python utilizado a nivel mundial dentro de TextMate:

  1. En la barra TextMate menú, abierta TextMate ->Preferences

  2. clic en el panel Advanced

  3. clic en el Shell Variable pestaña

  4. haga clic en el + añadir una nueva variable

  5. entrar TM_PYTHON en el campo Variable y la ruta completa a la pitón en el campo Value (quizás /usr/local/bin/python3.1)

Como Alex señala, es posible rompa otras funcionalidades de TextMate cambiando la versión de Python globalmente para que el cambio por proyecto sea probablemente una mejor solución.

ACTUALIZACIÓN (2010-10-31):

Hay otro enfoque que puede ser más fácil de usar para algunos proyectos. El comando Run en el paquete Python TextMate parece respetar una línea shebang en el archivo que se está ejecutando. Así, en lugar de modificar TM_PYTHON, puede especificar la ruta al intérprete para ser utilizado mediante la inclusión de una primera línea como la siguiente:

#!/usr/local/bin/python3.1 

# sample code to show version 
import sys 
print(sys.version_info) 

En muchos casos se prefiere no cableado la ruta absoluta, sino administrar el uso a través de la variable de entorno shell PATH normal. Tradicionalmente, /usr/bin/env se usa para ese propósito. Sin embargo, cuando se ejecuta bajo TextMate, sus archivos de perfil de shell normalmente no se utilizan, por lo que los cambios en PATH no aparecen, incluyendo posiblemente /usr/local/bin o /opt/local/bin o donde se encuentre el comando python3 deseado. Para evitar esto, puede agregar o modificar una variable de shell global PATH a TextMate ->Preferences (ver arriba) con un valor de, por ejemplo, /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin. A continuación, puede utilizar una línea más general tinglado como esto:

#!/usr/bin/env python3 

(Todo esto parece funcionar con la más reciente de vainilla TextMate y su paquete de Python:. No hay garantías sobre las versiones anteriores o con otros paquetes de Python)

+0

Perfecto, gracias! :) – 3zzy

+0

No puedo resolver esto ... tal vez porque estoy usando TextMate 2.0-alpha9495. No hay un panel avanzado, ni puedo encontrar una nueva opción de proyecto. Tampoco veo una línea de shebang, solo un código de rubí. –

+1

TextMate 2 ha cambiado gran parte de la función de carpeta de proyecto anterior encontrada en TM1. TM2 tiene una forma mucho más flexible de especificar todo tipo de configuraciones, incluidas las variables 'PATH', jerárquicamente, por carpeta, utilizando archivos' .tm_properties'. Ver, por ejemplo: http://blog.macromates.com/2011/git-style-configuration/ –

5

Según this long thread (que era sobre Python 3.0 y la versión TextMate existente la primavera pasada, pero creo que todavía es válida para Python 3.1 y TextMate de hoy), puede hacerlo (por ejemplo, mediante la respuesta de @Ned), pero Es posible que muchos comandos de TextMate se rompan (porque están escritos para usar Python 2, y Python 3 no es compatible con Python 2, por ejemplo, el uso de reload, que desapareció en Python 3, se menciona repetidamente en el hilo). Aún así, podría funcionar si no usa o no necesita mucha de la funcionalidad de TextMate (la composición tipográfica de LaTeX, por ejemplo, se mencionó como algo que se rompe por completo una vez que hace que TextMate use Python 3 en lugar de Python 2).

+0

He actualizado la respuesta para incluir cómo establecer variables por proyecto. Eso debería evitar la rotura! –

+0

Erm ... ustedes me están asustando con los detalles! ¡Solo necesito ejecutar 3.1 con Textmate para el aprendizaje básico! :) Agregué TM_PYTHON: /Library/Frameworks/Python.framework/Versions/3.1/bin/python3.1 como instruía Ned y ahora está usando Python3.1 - No muestra ningún detalle con sys.path, pero probé esto: print ("¿Es esto {}? - {}". formato ('Python 3.1', '¡Sí!')) ¡y funcionó! ¡Montones de gracias! :) – 3zzy

7

Tarde a la fiesta, lo siento! Supongo que quiere ejecutar el script utilizando el intérprete "incorporado" de TextMate. He encontrado que la solución más simple es agregar un shebang, que funciona extremadamente bien;

#!/usr/bin/env python3 

para python 3.1 o;

#!/usr/bin/env python 

para el sistema predeterminado de pitón, aunque este último es superfluo para el ejercicio.

2

el tinglado es la mejor solución, para ver donde Python 3 se instala tipo en el terminal:

cuales python3

obtendrá algo como esto:

/usr/local/bin/python3

si no Lo primero aparece instalar python3

y en la parte superior de la inserción de la escritura:

#/usr/local/bin/python3