Depuis cet article (28 juin 2018), j'utilise Pycharm-2018.1.4 sur Ubuntu 18.04 Bionic Beaver. La solution qui a fonctionné pour moi était de simplement modifier le sudoers.d
fichier et ajoutez ce qui suit à la dernière ligne :
user host = (root) NOPASSWD: full_path_to_python
par exemple :
guya surface-pro = (root) NOPASSWD /usr/bin/python3.6
J'ai eu besoin d'exécuter un script à partir de PyCharm en tant que root comme l'OP, mais la réponse acceptée n'a pas fonctionné pour moi car 1.) J'avais installé PyCharm via flatpak et 2.) Le gksu
La commande n'est pas disponible sur les nouvelles versions d'Ubuntu et de Mint.
Je n'ai pas trouvé de moyen de faire fonctionner les choses de manière cohérente avec l'installation de flatpak, j'ai donc désinstallé le flatpak PyCharm, puis réinstallé PyCharm de manière "normale". La réponse acceptée repose sur le gksu
commande qui n'est pas disponible sur mon système d'exploitation (Mint 19.2). Heureusement pkexec
est une alternative appropriée et était déjà disponible sur mon système. J'ai ensuite mis à jour mon fichier de lancement (~/.local/share/applications/PyCharm.desktop) comme suit. Le bit important est le Exec
ligne :
[Desktop Entry]
Name=PyCharm
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/pycharm-community-2019.2.2/bin/pycharm.sh
Comment=PyCharm
Terminal=false
Icon=/opt/pycharm-community-2019.2.2/bin/pycharm.png
Type=Application
Le pkexec
fera apparaître une fenêtre contextuelle vous demandant votre mot de passe chaque fois que vous lancerez PyCharm via le .desktop
fichier.
J'ai rencontré un autre moyen de résoudre ce problème, j'ai donc pensé à le partager (cette réponse ressemble plus à une alternative aux autres réponses).
Il convient de mentionner que cette solution "attaque" le problème en exécutant uniquement un certain script Python (dans l'IDE PyCharm) en mode racine, et non l'intégralité de l'application PyCharm.
1) Désactiver mot de passe requis pour exécuter Python :
Ceci sera réalisé en éditant le /etc/sudoers.d/python
dossier. Ce que nous devons faire est d'ajouter une entrée dans ce fichier comme suit :
user host = (root) NOPASSWD: full_path_to_python
, par exemple :
guya ubuntu = (root) NOPASSWD /usr/bin/python
REMARQUES :
user
peut être détecté par la commande :whoami
host
peut être détecté par la commande :hostname
2) Créer un "sudo script":Le but de ce script est de donner à python le privilège de s'exécuter en tant qu'utilisateur root.
Créez un script appelé python-sudo.sh
, et ajoutez-y ce qui suit :
!#/bin/bash
sudo /usr/bin/python "[email protected]"
Notez, encore une fois, que le chemin est le chemin vers votre Python comme la phase précédente.
N'oubliez pas de donner les permissions d'exécution à ce script en utilisant la commande :chmod
, c'est-à-dire-
chmod +x python-sudo.sh
3) Utiliser le python-sudo.sh
script comme interpréteur PyCharm :
Dans PyCharm, accédez à :File --> Settings --> Project interpreter
En haut à droite, cliquez sur l'icône "Paramètres", puis cliquez sur "Ajouter local".
Dans l'option du navigateur, choisissez le python-sudo.sh
script que nous avons créé précédemment. Cela donnera à PyCharm le privilège d'exécuter un script python en tant que root.
4) Débogage le test :il ne reste plus qu'à déboguer le script Python spécifique dans l'IDE PyCharm. Cela peut être fait facilement via un clic droit sur le script à déboguer --> appuyez sur "Déboguer sample_script_to_debug.py"
J'espère que cela vous a été utile et faites-moi savoir s'il y a des erreurs dans cette approche.
Guy.
Essayez :gksudo ./path/to/pycharm/executable
En savoir plus sur gksudo
Si vous êtes sur Ubuntu et que vous n'avez pas gksudo
installez-le en utilisant :
apt-get install gksu
Voici un exemple de configuration de lanceur (sous :~/.local/share/applications/jetbrains-pycharm-ce.desktop
):
[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm Community Edition
Icon=/home/YOUR_USER/pycharm/bin/pycharm.png
Exec=gksudo -k -u root "/home/YOUR_USER/pycharm/bin/pycharm.sh" %f
Comment=Develop with pleasure!
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm-ce
ce
indique l'édition communautaire, la vôtre peut différer.