Python dans le terminal
Cette question concerne l'exécution de fichiers python dans le terminal qui ne sont pas stockées dans le répertoire d'accueil. Je pense avoir résolu le premier morceau de ce puzzle en modifiant mon chemin afin qu'il inclut le répertoire où mon python programmes sont stockés.
Alors, où, comme initialement
echo $PATH
donnerait les suivantes: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
maintenant des rendements:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/paulpatterson/Documents/Python
Cependant, malgré le fait que le dossier est maintenant dans mon chemin, aucun des fichiers python à l'intérieur de ce dossier s'exécuter. Par exemple il y a un fichier qui s'appelle recap.py, quand j'ouvre le terminal et tapez:
python recap.py
J'obtiens:
python: can't open file 'recap.py': [Errno 2] No such file or directory
Si je il suffit de taper dans recap.py
(c'est à dire en omettant le "python" bit), j'obtiens:
-bash: /Users/paulpatterson/Documents/Python/recap.py: Permission denied
Quelqu'un peut-il m'éclairer? Idéalement, je veux le mettre en place, de sorte que dès que le terminal s'ouvre à tous j'ai besoin de faire est de taper le nom du fichier et pas le même type de python.
J'ai passé des heures à essayer de régler cette question, toute aide est appréciée.
Paul.
Vous devez vous connecter pour publier un commentaire.
Y compris le répertoire où une commande qui vit dans votre $PATH signifie que vous pouvez exécuter des commandes dans le répertoire à partir de n'importe où. Mais dans ton premier exemple, vous exécutez la commande "python" avec recap.py comme argument. Si votre shell n'est pas de rechercher votre $PATH pour trouver où recap.py vie. Pour faire recap.py exécutables comme une commande par lui-même, voir ceci:
http://en.wikipedia.org/wiki/Shebang_(Unix)
En bref, vous devez inclure
#!/usr/bin/env python
la première ligne, et le chmod du fichier exécutable (chmod u+x recap.py
).Vous avez essayé cela avant, mais j'ai couru dans des problèmes similaires à un point, et c'est le processus qui fonctionne pour moi. Dans le répertoire où recap.py de stockage:
L' ./la clé de la partie, car il fonctionne comme le chemin d'accès complet au répertoire. Cela suppose également que vous avez
ou quelque chose de similaire à la première ligne de votre programme. Les deux premiers caractères de la première ligne est appelée un shebang et indique que le fichier est un script qui sera exécuté par l'interpréteur spécifié par le chemin d'accès suivant. Donc, comme d'autres l'ont suggéré, votre interpréteur python peut être situé ailleurs que dans /usr/bin (peut-être dans /bin), de sorte que vous aurez besoin de trouver cela, et inclure cette ligne en haut de python script que vous souhaitez exécuter à partir du terminal.
Si vous ne savez pas où python est situé à, que vous pouvez utiliser:
au terminal, qui devrait imprimer le chemin d'accès à votre python installer. Vous pouvez ensuite utiliser ce chemin après votre arborescence.
(' /Users/paulpatterson/Documents/Python/recap.py: line 3:
start_num = int(raw_input("Quel nombre voulez-vous commencer à compter à l'?"))'Assurez-vous que la première ligne de chaque script est "#!/usr/bin/env python" (pas de qoutes). Faire "chmod +x file.py" pour chaque fichier. Vous devriez alors être en mesure d'exécuter chaque script file.py.
chmod +x file.py
, puisfile.py
doit être dans votre répertoire de travail actuel ou si vous devez spécifier le chemin complet vers le fichier. chmod n'est pas d'aller à la recherche de l'ensemble de votre système de fichiers aléatoires file.py et la commande chmod.(' /Users/paulpatterson/Documents/Python/recap.py: line 3:
start_num = int(raw_input("Quel nombre voulez-vous commencer à compter à l'?"))' Suggère donc beaucoup d'erreurs, mais le fichier fonctionne parfaitement si je le lance à partir de paulpattersonTapez:
en terminal et qui devrait vous obtenir le chemin d'accès à python. Mettre sur le dessus de votre script comme d'autres l'ont suggéré:
Aussi assurez-vous qu'il est exécutable (tout le chmod des trucs). Vous pouvez le vérifier en tapant:
Le fichier doit alors avoir quelque chose comme -rwx-r--r-- à côté d'elle. Le x signifie qu'il est exécutable.
which
en ayant#!/usr/bin/env python
Les autres intervenants ont fait un bon travail avec votre question initiale, mais je pense que vous serait très bien servi pour réellement apprendre à utiliser la ligne de commande, que vos réponses ont montré que vous n'êtes pas familier avec elle encore. Je recommande toujours cette. C'est un guide fantastique que vous obtenez à l'aise de l'utiliser.
Essayez de taper:
pour savoir ce qu'est le chemin de l'env sur votre système. Changer le shebang chemin pour correspondre au chemin d'accès complet de la commande env trouvé à l'aide de la commande.
Si cela échoue. Cela signifie que vous ne disposez pas d'env installé ou env est installé dans un chemin d'accès système. Essayez de spécifier le chemin complet vers l'exécutable python au lieu d'utiliser env en tapant:
Et en utilisant le chemin d'accès complet de retour à la place de l' /chemin/vers/env python shebang. La première ligne de votre recap.py devrait ressembler à quelque chose comme ceci:
Je ne sais pas combien c'est utile pour vous maintenant vu comme c'est quelques années plus tard, mais j'ai eu du mal avec très semblable à la question pendant une bonne heure maintenant. Je suis en utilisant le Python IDLE pour enregistrer mon code .py fichier. Quand j'ai essayé de l'exécuter dans le terminal j'ai continué à obtenir une erreur de syntaxe dans la première ligne. Ma première ligne de code a été
mais l'interprète a été la lecture de ma première ligne que le régime de RALENTI du shell description "(Python w.7.5 (v2.75:ab05e7dd2788... etc, etc.)". Ce que j'avais à faire était de supprimer toutes ces lignes, dont la première
>>>
afin de terminal pour ouvrir mon fichier. J'ai donc supprimé toutes les conneries de l'INACTIVITÉ des endroits comme la première de ses lignes et voilà! Il a travaillé. Voici comment je l'ai eu à travailler une fois dans le terminal:Que c'est!