111 votes

Comment éviter "Permission denied" lors de l'utilisation de pip avec virtualenv

Je tente de déployer un package Python avec pip dans un environnement virtuel sur une machine Ubuntu, mais je rencontre un problème lié aux permissions. Par exemple :

(TestVirtualEnv)test@testServer:~$ pip install markdown2

se termine par :

erreur : impossible de créer '/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py' : Permission refusée

Je ne peux pas utiliser sudo, car cela installera le package de manière globale, et non pas dans l'environnement virtuel. J'ai utilisé chown sur site-packages ; ls montre seulement des répertoires liés à easy_install, pip et setuptools, et rien lié à Markdown.

Comment déployer un package dans un environnement virtuel avec pip sans rencontrer d'erreurs liées aux permissions ?

146voto

Vingtoft Points 3412

Solution :

Si vous avez créé le virtualenv en tant que root, exécutez la commande suivante :

sudo chown -R votre_nom_utilisateur:votre_nom_utilisateur chemin/vers/le/virtuaelenv/

Cela devrait probablement résoudre votre problème.

Santé

120voto

sebastian_oe Points 948

Des problèmes de permission de virtualenv peuvent survenir lorsque vous créez le virtualenv en tant que sudo puis que vous opérez sans sudo dans le virtualenv.

Comme indiqué dans le commentaire de votre question, la solution ici est de créer le virtualenv sans utiliser sudo pour pouvoir travailler (surtout écrire) dedans sans sudo.

9voto

Si vous avez créé un environnement virtuel en utilisant root, utilisez cette commande

sudo su

cela vous donnera l'accès root, puis activez votre environnement virtuel en utilisant ceci

source /root/.env/ENV_NAME/bin/activate

6voto

nealmcb Points 1223

Dans mon cas, j'utilisais mkvirtualenv, mais je n'ai pas indiqué que j'allais utiliser python3. J'ai obtenu cette erreur :

mkvirtualenv hug
pip3 install hug -U

....
error: could not create '/usr/lib/python3.4/site-packages': Permission denied

Cela a fonctionné après avoir spécifié python3 :

mkvirtualenv --python=/usr/bin/python3 hug
pip3 install hug -U

6voto

Juan Hurtado Points 664

J'obtenais une erreur permission denied en essayant d'activer mon environnement virtuel. Je suis tombé sur cette page en cherchant des solutions donc cela pourrait peut-être aussi aider d'autres personnes qui rencontrent des problèmes similaires

source your_env_name_goes_here/bin/activate

J'utilisais la mauvaise commande (sans le source), pour activer mon environnement. Si vous êtes sur zsh c'est la commande correcte à utiliser. Sinon, la documentation python a un tableau des commandes à utiliser en fonction de votre plateforme et de votre shell (windows ou mac, bash or powershell etc)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X