Je suis utilisateur Mac.
Je veux définir PythonPath env pour la racine. Donc p> et ajouter au fichier 'export pythonpath = / mypythonlib' p> p> Je peux voir cette ligne p> mais. P> Lorsque j'utilise la commande sudo, impossible de trouver que p> .. il n'y a pas de pythonPath p> Mon programme doit fonctionner avec la commande sudo et les besoins pythonpath code>. p> p>
6 Réponses :
Vous devriez essayer sudo -i code> qui simulera la connexion en tant que
root code> et source the
~ racine / .profile p>. p>. P>.
Si vous utilisez sh Essayez / etc / profil code>, bash essayer
/ etc / bashrc si vous utilisez zsh essayer
/ etc / zshenv code> . p>
Une chose à ajouter ... si sur ubuntu code>, bash essayer
/etc/bash.bashrc code>
à partir de 10.8.5, mettre mes relevés d'environnement dans le chemin .profile dans la maison de l'utilisateur root (/ var / racine) fonctionné. Après avoir quitté Bash et revenir à l'invite de l'utilisateur racine avec 'Su -', je pouvais voir mon nouveau chemin, etc. avec la commande «env»
MacBook-Pro:~ root# cat /var/root/.profile
export MANPATH=/opt/local/share/man:$MANPATH
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
MacBook-Pro:~ root# which port
/opt/local/bin/port
Vous pouvez rendre Visible PythonPath pour édition de votre fichier Sudoers. Remarque Vous ne devriez le faire que via Visudo comme expliqué ici a>. p>
La meilleure réponse. En fait, le seul qui fonctionne pour moi.
Dans le cas de la connexion en tant qu'utilisateur normal et invoquant "Su - root", j'ai trouvé que Bash de Mac OS 10.8.5 ignorait .Profile et .bash_profile; Je n'ai pas pu changer la voie de la racine en modifiant ces fichiers. Qu'est-ce que le travail a été modifié / etc / chemins? Après avoir sorti la coque racine et entrez à nouveau avec "Su - racine", le nouveau chemin était présent. P>
Eh bien, dans un autre système Linux, il est également correct que "sudo" n'utilise pas la variable d'environnement local. Mais vous pouvez déclarer la variable d'environnement temporaire avec la commande 'sudo'.
Par exemple, dans votre cas, vous pouvez ajouter 'pythonPath = / myPyThonLib' dans votre commande 'sudo env', et la commande finale est: p> Vous pouvez également lire cet article: Utilisation de sudo a >. Vous pouvez voir comment "sudo" garde ou ignore les variables d'environnement définies par l'utilisateur. p> p>
Veuillez lire Comment formater des questions sur SO .