web-dev-qa-db-fra.com

PIP ne pas installer dans le répertoire virtualenv

Je tente d'installer Django à un virtualenv existant déjà.

Suite aux instructions énumérées sur le site Web PIP-INSTALL ICI , j'ai couru le suivant de SSH.

name@server:~$ . myenv.env/bin/activate
(myenv.env)nam@server:~$ pip install Django

Cependant, au bas de l'installation, je vois ceci:

creating /usr/local/lib/python2.7/dist-packages/Django

error: could not create '/usr/local/lib/python2.7/dist-packages/Django': Permission denied

Il semble qu'il essaie de l'installer dans le répertoire global. Je n'ai pas de privilèges sudo. Est-ce que je fais quelque chose de mal ici?

Mise à jour: $ chemin = /var/django/myenv.env/bin:/usr/Local/sbin:/usr/Local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

10
Luke Sapan

Désolé pour une réponse de retard d'année! J'ai eu le même problème et j'ai réparé, je ne sais pas si vous avez changé le nom d'un répertoire après avoir créé l'environnement virtuel, je l'ai fait. Si oui, voici ce que j'ai fait.

1.) deactivate votre V-ENV. Après le correctif, vous devez redémarrer le V-ENV, alors pourrait aussi bien deactivate maintenant. droit?

2.) Maintenant, puisque nous avons créé le V-ENV dans une autre voie, nous devons modifier les variables de chemin statiques dans ces fichiers.

Pour obtenir le PIP, vous n'avez pas besoin de faire cela, mais je le fais toujours. bin/activate, bin/activate.csh, bin/activate.fish

bin/pip, bin/pip2, bin/pip2.7

bin/easy_install, bin/easy_install2.7

3.) Pour obtenir le travail PIP, vous devez corriger le python INTERPRÈTE DANS LE FICHIER PIP, cela a également un emplacement d'interprète statique défini par Virtualenv dans le processus de création.

4.) Pour faire fonctionner EASY_INSTALL? Vous l'avez deviné, réparez l'emplacement de l'interprète.

J'espère que cela a aidé à toutes les personnes qui lisent ceci à l'avenir. Désolé op, pour être en retard.

6
Crispy

J'ai eu le même problème.

J'ai supprimé l'environnement virtuel et j'ai créé un nouveau, qui a résolu le problème.

Probablement pas la réponse que vous espériez, mais comme c'est le seul ...

3
Mark

Eh bien, sans privilèges administratifs, vous êtes très limité sur ce que vous pouvez faire. Si vous n'êtes pas autorisé à élever vous-même ou à demander des privilèges, le meilleur moyen que j'ai trouvé de savoir ce serait de créer un autre environnement, de faire un fichier configuratif.txt, téléchargez tous les packages dont vous avez besoin pour votre machine (Django) qui seraient également situés dans votre dossier des exigences et cela devrait fonctionner.

1
secure212

Dans mon cas, j'avais défini deux alias (pour surmonter une autre question sur la valeur par défaut python Version):

alias pip='/usr/bin/pip3'
alias python='/usr/bin/python3'

Et cela causait les mêmes symptômes:

[Errno 13] Permission denied: '/usr/lib/python3.6/site-packages'

Supprimer les alias résolvés le problème (avant ou après avoir créé le virtualenv)

0
coderazzi

Avait le même problème. Dans mon cas, la raison en était que l'ENV virtuel créé était pour Python2.7 (la valeur par défaut) mais j'utilisais Pip3 pour installer un package. Pip3 n'était pas présent dans mon virtualenv, il est donc défaut de défaut à la mondialisation. Pour moi, le correctif était d'utiliser

virtualenv flask --python=python3

créer l'env.

0
Adversus

Appeler Sudo pip appellera Global Pip et non PIP dans votre virtualenv. Activer/Workon Votre environnement, appelez simplement pip, pas Sudo pip, cela peut résoudre votre problème, car il a fait le mien.

0
Milton Walker

J'avais rencontré le même problème causé par le renommage de l'utilisateur. La réponse de Crispy est totalement correcte. Et ma solution peut être plus pratique.

SETPS :
1. Entrez le chemin Bin de votre environnement virtuel, tel que cd ~/virenv_dir/bin
[.____] 2. Renommez tous les fichiers sous ce répertoire à l'aide de la commande SED. sed -i 's/old_name/new_name/' *

0
xialu