Utiliser Python 3.1 avec TextMate

TextMate semble utiliser la version Python intégrée que je suppose (sys.chemin d'accès ne fonctionne pas). Comment la configurer pour utiliser 3.1 la place? J'ai déjà installé le paquet 3.1 et je peux utiliser IDLE pour des sessions interactives, mais je dois utiliser TextMate maintenant.

Merci

20
demandé sur Steve Landey 2009-11-21 19:34:17

4 réponses

TextMate utilise la valeur de TM_PYTHON variable pour trouver le chemin vers l'interpréteur Python. Une bonne solution est de profiter de la capacité de TextMate à définir des variables comme TM_PYTHON sur une base par projet:

  1. Ouvrir un nouveau ou existant TextMate ProjetFile -> New Project ou File -> Open)

  2. désélectionnez n'importe quel fichier de la liste des projets.

  3. Cliquez sur le Get Info ( i) icône dans le encadré. Project Information volet s'affiche.

  4. Cliquez sur + pour ajouter une nouvelle variable.

  5. entrez TM_PYTHON dans le champ Variable et le chemin complet vers le python désiré dans le champ Valeur (par exemple,/usr/local/bin/python3.1).

  6. fermez la fenêtre D'Information et sauvegardez le projet (File -> Save Project As).

Ensuite, vous pouvez ajouter des fichiers nécessaires pour le projet et ils seront exécutés sous le choisi python avec la commande Run Script de Python bundle de TextMate. Vous voudrez peut-être enregistrer un Python 3 projet de, disons, pour l'exécution d'ad-hoc script sous Python 3. Pour les projets plus grands, vous voudrez créer un projet TextMate séparé pour lui de toute façon.

pour changer la version Python utilisée globalement dans TextMate:

  1. TextMate barre de menu, ouvrez TextMate -> Preferences

  2. cliquez sur le Advanced volet

  3. cliquez sur le Shell Variable onglet

  4. cliquez sur le + pour ajouter une nouvelle variable

  5. entrée TM_PYTHON dans le Variable le champ et le chemin complet vers le python dans le Value champ (peut-être /usr/local/bin/python3.1)

comme Alex le souligne, vous pouvez casser d'autres fonctionnalités de TextMate en changeant la version Python globalement, donc le changement par projet est probablement un meilleur solution.

mise à JOUR (2010-10-31):

il existe une autre approche qui peut être plus facile à utiliser pour certains projets. Run commande TextMate'Python bundle s'affiche à l'égard d'un inclus ligne dans le fichier en cours d'exécution. Donc, au lieu de modifier TM_PYTHON, vous pouvez spécifier le chemin vers l'interpréteur à utiliser en incluant une première ligne comme celle-ci:

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

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

Dans de nombreux cas, vous préférez ne pas câblage la chemin d'accès absolu, mais de gérer l'utilisation grâce à la normale shell PATH environnement variable. Traditionnellement /usr/bin/env est utilisé à cette fin. Cependant, si vous êtes en dessous de TextMate, vos fichiers de profil d'interpréteur de commandes ne sont normalement pas utilisés, de sorte que tout changement de chemin ne s'y retrouve pas, y compris peut-être /usr/local/bin ou /opt/local/bin ou partout où votre choix python3 la commande est localisée. Pour contourner cela, vous pouvez ajouter ou modifier un mondial PATH variable shell vers TextMate -> Preferences (voir ci-dessus) avec une valeur de, dire, /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin. Alors vous pouvez utiliser une ligne plus générale de shebang comme ceci:

#!/usr/bin/env python3

(tout Cela semble fonctionner avec la plus récente à la vanille TextMate et son paquet Python: aucune garantie sur les versions précédentes ou avec d'autres paquets Python.)

46
répondu Ned Deily 2010-10-31 22:11:46

en retard à la fête, désolé! Je suppose que vous voulez exécuter le script en utilisant L'interpréteur 'intégré' de TextMate? J'ai trouvé la solution la plus simple est d'ajouter un shebang, qui fonctionne extrêmement bien;

#!/usr/bin/env python3

pour python 3.1 ou;

#!/usr/bin/env python

pour le système Python par défaut, bien que ce dernier soit superflu pour l'exercice.

8
répondu Simon Banyard 2010-07-21 08:17:35

Selon ce long fil (qui était à propos de Python 3.0, et la version TextMate existant au printemps dernier, mais je crois est toujours valide pour Python 3.1 et TextMate d'aujourd'hui), vous pouvez le faire (par exemple via la réponse de @Ned), mais une fois que vous faites de nombreuses commandes TextMate peut bien se casser (parce qu'ils sont écrits pour utiliser Python 2, et Python 3 n'est pas rétro compatible avec Python 2 -- par exemple, l'utilisation de reload, qui a disparu en Python 3, est mentionné à plusieurs reprises dans le fil.) Néanmoins, cela pourrait fonctionner si vous n'utilisez pas ou n'avez pas besoin d'une grande partie des fonctionnalités de TextMate (la composition en LaTeX, par exemple, a été mentionnée comme quelque chose qui casse totalement une fois que vous faites utiliser Python 3 au lieu de Python 2 par TextMate).

5
répondu Alex Martelli 2009-11-21 17:01:35

l'arborescence est la meilleure solution, pour voir où en python 3 est installé, tapez dans le terminal:

quel python3

vous obtiendrez quelque chose comme ceci:

/ usr/local/bin / python3

si rien ne s'affiche, installez d'abord python3

et en haut de votre script à insérer:

#!/usr/local/bin/python3
2
répondu philberndt 2011-10-17 10:19:46