web-dev-qa-db-fra.com

Comment exécuter un script python en tant que Sudo en double-cliquant dessus?

Autrement dit, comment puis-je faire cela, en fournissant une invite graphique?

J'ai essayé de créer un script bash distinct qui, une fois ouvert, a exécuté le script Python avec les autorisations de super-utilisateur - j'ai utilisé gksu -u root '<script>'.

Malheureusement, cela n'a pas fonctionné ... :(

Des idées?

1
TellMeWhy

La façon appropriée de démarrer un processus ou une application via l'interface graphique est d'utiliser un .desktop fichier. Vous pouvez également l'utiliser pour exécuter des scripts avec les privilèges Sudo. Dans sa forme la plus simple, ce serait:

[Desktop Entry]
Name=Some Name
Exec=gksu python3 /path/to/script 
Type=Application

Si le script est exécutable, vous pouvez simplement utiliser:

Exec=gksu /path/to/script 

Dans le Exec= -ligne

notes IMPORTANTES

  • Vous devez faire le .desktop fichier exécutable pour le faire fonctionner en double-cliquant.
  • Vous pouvez "habiller" le .desktop fichier avec plus d'options, comme une icône, etc., comme montré ici .

Alternativement

Plus compliqué et genre de détour, mais il faut quand même le mentionner:
Vous pourriez définir nautilus pour exécuter des scripts (exécutables) en double-cliquant, comme décrit ici .

Ensuite (en le faisant "à votre façon"), un script bash séparé:

#!/bin/bash
gksu python3 /path/to/script

rendu exécutable, exécuterait également le script python, de la même manière que le .desktop fichier.

2
Jacob Vlijm

Désolé, pas assez de représentant pour commet. Avez-vous essayé de donner au fichier les autorisations appropriées? Essayez de donner rwx à tout le monde pour voir si cela fonctionne, vous pouvez le modifier plus tard.

Sudo chmod 777 'script.py'.

Essayez ceci pour résoudre le problème de chemin

gksudo ./script 
1
Andrew Kralovec