bash autorisation refusée pour python
Je suis nouveau sur Ubuntu... je suis en train de lancer mon premier simple programme en python "Hello World" ...
Après l'exécution de commandes suivantes dans le terminal
1. chmod +x filename.py
2. ./filename.py
terminal montre d'erreur suivant "bash: ./filename.py: Permission denied
"
que puis-je faire pour résoudre le problème?
Pouvez-vous faire un
Avez-vous des
Re
À l'aide de
ls -l filename.py
et après ce qu'il dit .. je suis curieux de connaître la permission de fichier (si chmod +x filename.py
serait la bonne façon de rendre le fichier exécutable).Avez-vous des
#!/usr/bin/env python
dans la première ligne de votre script?Re
#!/usr/bin/env python
vs #!/usr/bin/python
j'ai été sévèrement réprimandé par une personne sur DONC pour l'utilisation de l'ancien (qui de toutes de mes propres scripts font encore) parce que je suppose que vous pourriez ne pas être sûr de Python à l'exécution dans le cas où vous avez eu plus d'un, l'idée était donc de toujours spécifier le chemin d'accès complet pour celui que vous voulez). Je devrais peut-être faire de cette question et de le poster sur.À l'aide de
/usr/bin/env
est très bien. C'est simplement une manière de dire "l'utilisation de ce que vous trouverez sur mon PATH
" qui est parfaitement bien si votre PATH
est construit sainement. Je dirais qu'il est préférable si vous allez distribuer vos scripts, parce qu'alors ils seront en mesure d'utiliser de l'utilisateur final PATH
. Mais si vous avez besoin d'utiliser explicitement un Python binaire, alors oui, par tous les moyens, de préciser que.OriginalL'auteur Ammu | 2012-06-16
Vous devez vous connecter pour publier un commentaire.
Vos incantation en haut de votre fichier python? par exemple,
#!/usr/bin/python
(ou alternativement#!/usr/bin/env python
)Juste pour clarifier,
chmod +x
ne fait qu'un fichier exécutable, il ne fonctionne pas.Et je suis en supposant que votre script ressemble à rien de plus complexe que cela:
#!/usr/bin/env python
. Et OP ne dit que exactement de cette façon de courir c'est ce qui donne l'erreur.vous avez raison .. je vais mettre à jour ma réponse - merci pour la capture.
Vraiment merci beaucoup à tous.. @Levon Merci pour la retouche de mes question + #!/usr/bin/python + print "Hello, World!" Ci-dessus est mon programme.
Vous êtes les bienvenus. Pouvez-vous nous donner la sortie de la
ls -l filename.py
de commande afin que nous puissions voir les autorisations de fichier?Salut,Levon terminal affiche le message suivant 1. -rw-rw-r-- 1 propriétaire de propriétaire de 40 Jun 15 15:45 first.py
OriginalL'auteur Levon
Quelques possibilités:
Que veut-il dire que si vous tapez
umask
?chmod +x
ne fera que rendre un fichier exécutable pour vous si votre umask ne pas bloquer l'utilisateur exécutable peu. Typique d'un umask comme 0022 ne va pas bloquer l'utilisateur bit d'exécution, mais un umask comme 0122 peut. (Voir la section Description dechmod(1)
pour plus d'info.)Pour exécuter un script comme un script Python, vous devez également lire autorisation. Essayez
chmod u+rx filename.py
et d'exécuter le script de nouveau.Il est également à distance possible que, quelle que soit l'interpréteur que vous avez spécifié dans le fichier avec la "hashbang" de la ligne au début de votre fichier (par exemple,
#!/usr/bin/env python
) n'est pas exécutable, bien que dans mon expérience, donne un message d'erreur différent.chmod -x
va supprimer autorisation d'exécution de l'utilisateur, de groupe, et d'autres, mais là encore, seulement si le umask ne comprend pas ceux exécuter bits—voir le chmod page de manuel de linux.die.net/man/1/chmod pour plus d'info.chmod u+rx
sera mis à l'utilisateur de lire et d'exécuter des bits indépendamment de umask.OriginalL'auteur zigg
Je traite avec le même problème sur mon nouveau système.
C'est la troisième fois que j'ai essayé pour résoudre ce problème, et votre post est le premier à apparaître sur les résultats de google. Mon post est en retard, mais pense que cela va aider un autre utilisateur avec le même problème.
Dans mon cas, c'était à propos de la table de partition d'installation.
Vérifier dans votre fichier /etc/mtab comment script python est stockée. Vérifiez si il y a une clause: noexec
noexec est un indicateur qui interdisent l'exécution en vertu de la partition. Par défaut, il est fixé avec exec. Mais, parfois, ce genre de choses arrive.
Maintenant, il fonctionne très bien ici.
OriginalL'auteur Andre Pastore