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
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:
Ouvrir un nouveau ou existant TextMate Projet
File -> New Project
ouFile -> Open
)désélectionnez n'importe quel fichier de la liste des projets.
Cliquez sur le
Get Info
( i) icône dans le encadré.Project Information
volet s'affiche.Cliquez sur + pour ajouter une nouvelle variable.
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
).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
:
TextMate
barre de menu, ouvrezTextMate
->Preferences
cliquez sur le
Advanced
voletcliquez sur le
Shell Variable
ongletcliquez sur le
+
pour ajouter une nouvelle variableentrée
TM_PYTHON
dans leVariable
le champ et le chemin complet vers le python dans leValue
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.)
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.
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).
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