web-dev-qa-db-fra.com

Lorsque j'utilise Sudo pip pour installer un logiciel, le message "le répertoire ... n'appartient pas à l'utilisateur actuel" s'affiche.

Le répertoire '/home/bijay/.cache/pip/http' ou son répertoire parent n'appartient pas à l'utilisateur actuel et le cache a été désactivé. Veuillez vérifier les autorisations et le propriétaire de ce répertoire. Si vous exécutez pip avec Sudo, vous voudrez peut-être le drapeau -H de Sudo.

Mais les logiciels sont installés. Je veux juste savoir ce que l'erreur diabolique signifie.

Par exemple:-

 When I tried to install pandas, it goes like this..

3
Bijay uprety

Lorsque vous exécutez Sudo, votre environnement est transmis tandis que l'utilisateur effectif bascule sur root. Votre environnement comprend que votre ~/ ou votre répertoire de base (la valeur de la variable d’environnement HOME) est /home/bijay.

pip recherche un cache http avant de télécharger les packages. Probablement pour des raisons de sécurité, de sécurité et de confidentialité, pip désactive le cache afin de ne pas écrire dans un répertoire de cache n'appartenant pas à l'utilisateur actuel. C'est juste pour vous dire que c'est ce qu'il a fait.

Comme il est indiqué, l'utilisation de Sudo -H définirait la variable d'environnement HOME avant d'exécuter la commande transmise à Sudo, en utilisant le répertoire personnel de la racine /root comme $HOME au lieu de celui de l'utilisateur. Le cache pourrait alors être écrit dans /root/.cache/pip/http sans erreur.

En tant que note de bas de page, vous ne devriez probablement pas utiliser pip de toute façon.

5
jdwolf