J'essaie d'installer django sur un virtualenv qui existe déjà.
En suivant les instructions répertoriées sur le site Web de pip-install ici , j'ai exécuté ce qui suit à partir 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: $ PATH = /var/django/myenv.env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
python
installation
packages
virtualenv
pip
Luke Sapan
la source
la source
easy_install
?which easy_install
pour voir si vous utilisez votre virtualenv ou le système.which pip
cède? Et voyez-vous à l'pip
intérieurmyenv.env/bin/
?Réponses:
Désolé pour une réponse d'un an en retard! J'ai eu le même problème et l'ai résolu, 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 c'est le cas, voici ce que j'ai fait.
1.)
deactivate
votre v-env. Après le correctif, vous devez redémarrer le v-env, tout commedeactivate
maintenant. droite?2.) Maintenant, puisque nous avons créé le v-env dans un chemin différent, nous devons changer les variables de chemin statique dans ces fichiers.
Pour faire fonctionner le pip, vous n'avez pas besoin de le faire, 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 que pip fonctionne, vous devez corriger l'interpréteur python dans le fichier pip, qui a également un emplacement d'interpréteur statique défini par virtualenv dans le processus de création.
4.) Pour faire fonctionner easy_install? Vous l'avez deviné, corrigez l'emplacement de l'interprète.
J'espère que cela a aidé à toute personne lisant ceci à l'avenir. Désolé OP, d'être en retard.
la source
grep -rli '/path/to/old/env/bin' * | xargs -i@ sed -i 's/\/path\/to\/old\/env\/bin/\/path\/to\/new\/env\/bin/g' @
. sourceJ'ai eu le même problème.
J'ai supprimé l'environnement virtuel et en ai créé un nouveau, ce qui a résolu le problème.
Probablement pas la réponse que vous espériez, mais puisque c'est la seule ...
la source
Eh bien, sans privilèges administratifs, vous êtes très limité sur ce que vous êtes capable de faire. Si vous n'êtes pas autorisé à vous élever ou à demander des privilèges, la meilleure façon d'y parvenir serait de créer un autre environnement, de créer un fichier requirements.txt, de télécharger tous les packages dont vous avez besoin sur votre machine (django). être également situé dans votre fichier d'exigences et cela devrait fonctionner.
la source
Eu le même problème. Dans mon cas, la raison était que l'environnement virtuel créé était pour python2.7 (par défaut) mais j'utilisais pip3 pour installer un paquet. pip3 n'était pas présent dans mon virtualenv, il est donc par défaut le global. Pour moi, la solution consistait à utiliser
pour créer l'env.
la source
J'avais rencontré le même problème causé par le changement de nom de l'utilisateur. La réponse de Crispy est tout à fait juste. Et ma solution peut être plus pratique.
setps:
1. Entrez le chemin du bac de votre environnement virtuel, tel que
cd ~/virenv_dir/bin
2. Renommez tous les fichiers de ce répertoire à l'aide de la commande sed.
sed -i 's/old_name/new_name/' *
la source
Dans mon cas, j'avais défini deux alias (pour surmonter un autre problème sur la version python par défaut):
Et cela causait les mêmes symptômes:
La suppression des alias a résolu le problème (avant ou après la création de virtualenv)
la source
L'appel
sudo pip
appellera global pip et non pip dans votre virtualenv. Activez / travaillez sur votre environnement puis appelez simplementpip
, nonsudo pip
, cela peut résoudre votre problème, comme le mien.la source