Commande Virtualenv introuvable


208

Je n'ai pas pu me mettre virtualenvau travail malgré diverses tentatives. J'ai installé virtualenvsur MAC OS X en utilisant:

pip install virtualenv

et ont également ajouté le PATHdans mon .bash_profile. Chaque fois que j'essaie d'exécuter la virtualenvcommande, elle renvoie:

-bash: virtualenv: command not found

Chaque fois que je cours pip install virtualenv, il revient:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Je comprends que sous mac, le virtualenvdoit être correctement installé dans

/usr/local/bin

Le virtualenvest en effet installé dans /usr/local/bin, mais chaque fois que j'essaie d'exécuter la virtualenvcommande, la commande n'est pas trouvée. J'ai également essayé d'exécuter la virtualenvcommande dans le répertoire /usr/local/bin, et cela me donne le même résultat:

-bash: virtualenv: command not found

Ce sont les CHEMINS que j'ai ajoutés à mon .bash_profile

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages

Des solutions pour cela? pourquoi est-ce le cas?


1
Essayez d'ajouter un lien symbolique vers l'exécutable virtualenv dans / usr / local / bin
Justin Fay

Où dois-je créer le lien symbolique? Cela ne fonctionne toujours pas malgré que j'ai essayé d'ajouter un lien symbolique dans le répertoire où je veux utiliser virtualenv @justinfay
Arial

2
en regardant les chemins ci-dessus, cela pourrait ressembler à, remplacer le dernier chemin de la commande par le chemin vers l'exécutable virtualenv réel:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Justin Fay

2
ce qui a fonctionné pour moi a été d'ajouter un lien symboliqueln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza

Ne fonctionne pas dans un lubuntu
c24b

Réponses:


337

Si vous l'avez installé avec

pip install virtualenv

Vous devez courir

sudo /usr/bin/easy_install virtualenv

ce qui le met /usr/local/bin/.

Le répertoire ci-dessus par défaut devrait être dans votre PATH; sinon, modifiez votre .zshrc(ou. bashrc) en conséquence.


1
toujours heureux d'aider @nguns
Tal Avissar

sur l'instance AWS EC2 avec Amazon Linux, si vous essayez Let's Encrypt certbot, essayez cette solution. C'était la seule suggestion qui a résolu mon problème virtualenv.
emrahgunduz

2
Tu es le meilleur!
leon wu

6
la sortie estsudo: /usr/bin/easy_install: command not found
Ced

3
Merci pour cela - mais j'aurais aimé savoir ce qu'est la sorcellerie à l'œuvre ici - que fait "easy_install" que le pip normal ne fait pas? c'est-à-dire pourquoi cela fonctionne-t-il?
Thomas Kimber

153

J'ai fait face au même problème et voici comment je l'ai résolu:

  1. Le problème m'est apparu parce que j'ai installé virtualenv via pip en tant qu'utilisateur normal (pas root). pip a installé les packages dans le répertoire~/.local/lib/pythonX.X/site-packages
  2. Lorsque j'ai exécuté pip en tant que root ou avec des privilèges d'administrateur (sudo), il a installé des packages dans /usr/lib/pythonX.X/dist-packages. Ce chemin peut être différent pour vous.
  3. La commande virtualenv n'est reconnue que dans le deuxième scénario
  4. Donc, pour résoudre le problème, faites pip uninstall virtualenv-le puis réinstallez-le avec sudo pip install virtualenv(ou installez-le en tant que root)

8
J'ai suivi votre solution et j'ai reçu le message "... Si vous exécutez pip avec sudo, vous voudrez peut-être l'indicateur -H de sudo". Enfin sudo -H pip install virtualenv a fait le travail pour moi (sur OS X), merci
smudo78

1
que faire si root n'est pas disponible sur votre machine?
user5359531

Résolu le problème. Je suppose que celui-ci peut aller dans le répertoire global au lieu de --user.

Ce problème se produit également lorsque pip lui-même est installé dans ~ / .local / SOME_PATH. J'ai cptout édité en site-packagesdir /usr/lib/pythonx.x/site-packages, et rm -rfédité le répertoire d'origine.
yoon

47

La réponse la plus simple. Juste:

pip uninstall virtualenv

puis:

pip install virtualenv

Ou vous avez peut-être installé virtualenv avec sudo, dans ce cas:

pip install --user virtualenv

Hou la la! C'est ce qui m'a fait l'affaire. J'utilise pyenvd'ailleurs
race_carr

C'est la voie à suivre pour Mac OS X en utilisant brew.
TCSGrad

Je me bats contre cela depuis des semaines et cela a gêné mon temps limité pour travailler sur un projet python et c'était la seule solution à travailler pour moi sur mac. Je vous remercie!
HellaDev

37

Sur Ubuntu 18.04 LTS, j'ai également rencontré la même erreur. La commande suivante a fonctionné:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvn'existe pas
Leonard

A fonctionné comme un charme sur mon 18.04, Merci
Nischaya Sharma

Voté pour promouvoir en apttant que successeur de apt-get.
greybeard

24

J'ai eu le même problème sur Mac OS X El Capitan .

Quand j'ai installé virtualenvcomme ça sudo pip3 install virtualenvje n'avais pas virtualenvsous ma ligne de commande.

J'ai résolu ce problème en suivant ces étapes:

  1. Désinstallez les installations précédentes.
  2. Passez au compte super utilisateur avant l' virtualenvinstallation en appelantsudo su
  3. Installer virtualenven appelantpip3 install virtualenv
  4. Enfin , vous devriez être en mesure d'accéder virtualenvà la fois useret super usercompte.

15

Comprendre le problème

Essayez d'installer avec le --verbosedrapeau

pip install virtualenv --verbose

La sortie ressemblera à ceci

  ..
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl#md5=aa7e5b86cc8cdb99794c4b99e8d670f3 (from https://pypi.python.org/simple/virtualenv/)
Installing collected packages: virtualenv

  changing mode of /home/manos/.local/bin/virtualenv to 755
Successfully installed virtualenv-15.1.0
Cleaning up...

À partir de la sortie, nous pouvons voir qu'il est installé /home/manos/.local/bin/virtualenv, nous allons donc nous assurer que PATH inclut cela.

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Dans mon cas, nous pouvons clairement voir que /home/manos/.local/binc'est totalement manquant et c'est pourquoi le shell ne peut pas trouver le programme.

Solutions

Nous pouvons résoudre ce problème de plusieurs manières:

  1. Nous pouvons installer directement dans un répertoire spécifique en jouant avec les options pip (non recommandé).
  2. Créez des liens symboliques appropriés sur /usr/local/binou similaire.
  3. Ajouter /home/manos/.local/binà PATH.
  4. Installer en tant que sudo pour installer directement sur /usr/local/bin

Les deux dernières options sont probablement les plus judicieuses. La dernière solution est la plus simple, donc je vais juste montrer la solution 3.

Ajoutez ceci à ~ / .profile:

PATH="$PATH:$HOME/.local/bin"

Déconnectez-vous et reconnectez-vous et cela devrait fonctionner.


1
Cela a parfaitement fonctionné. Ce devrait être la réponse acceptée et +1 pour l'explication détaillée
David The Programmer

13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


travaillé pour moi sans 3. python -m virtualenv <nom>
ofer.sheffer

11

Dans mon cas, j'ai couru pip show virtualenvpour obtenir les informations sur le paquet virtualenv. Je vais ressembler à ceci et montrerai également l'emplacement du paquet:

user@machine:~$ pip show virtualenv
Name: virtualenv
Version: 16.2.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Ian Bicking
Author-email: ianb@colorstudy.com
License: MIT
Location: /home/user/.local/lib/python3.6/site-packages
Requires: setuptools

De là, saisissez la partie de l'emplacement jusqu'à la .localpartie, qui dans ce cas est /home/user/.local/. Vous pouvez trouver la commande virtualenv sous /home/user/.local/bin/virtualenv.

Vous pouvez ensuite exécuter des commandes comme /home/user/.local/bin/virtualenv newvirtualenv.


10

J'ai eu le même problème. J'ai utilisé les étapes suivantes pour le faire fonctionner

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

C'est ça. Cela a commencé à fonctionner.

Utilisation de sudo -H----> sudo -H: définir la HOMEvariable pour cibler le répertoire personnel de l'utilisateur.


1
Il résout pour moi exactement le même problème ... pourquoi n'est-il pas vérifié comme solution?
manuele

9

Vous avez dit que chaque fois que vous exécutez, pip installvous obtenez Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Ce que vous devez faire est le suivant:

  1. Changer de répertoire (accédez à celui où virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Si vous faites un ls vous verrez que le script est làvirtualenv.py
  3. Exécutez le script comme ceci: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

J'espère que cela t'aides. Mon conseil serait de faire plus de recherches sur les venvs. Voici une bonne ressource: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

J'ai eu des problèmes car j'ai utilisé apt pour installer le paquet python-virtualenv. Pour le faire fonctionner, j'ai dû supprimer ce package avec apt-get remove python-virtualenvet l'installer avec pip install virtualenv.


1
Ce qui laisse la question: pourquoi diable mon package python3-virtualenv est-il cassé?
Dmitri DB

6

Veiller à ce que virtualenv est exécutable.

S'il virtualenvn'est pas trouvé, l'exécution du chemin complet ( /usr/local/bin/virtualenv) devrait fonctionner.


5

Je pense que votre problème peut être résolu en utilisant un simple lien symbolique , mais vous créez le lien symbolique vers le mauvais fichier . Pour autant que je sache, virtualenv est installé sur /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv, (vous pouvez changer les numéros de votre version Python) donc la commande pour créer le lien symbolique devrait être:

ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv

la mise en place du lien sym était tout ce que je devais faire. Merci.
Kirby

5

Sous Ubuntu 18.4, l'installation d'AWS avec pip ne fonctionne pas correctement. En utilisant apt-get install, le problème a été résolu pour moi.

sudo apt-get install python-virtualenv

et vérifier

virtualenv --version

4

Même problème: Je viens de faire pip uninstall virtualenv ensuite pip install virtualenv

pip install virtualenv --user

Collecte virtualenv Utilisation de cache https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl Installation des paquets collectés: virtualenv

Ensuite, j'ai obtenu ceci:

Le script virtualenv est installé dans '/Users/brahim/Library/Python/2.7/bin' qui n'est pas sur PATH. Pensez à ajouter ce répertoire à PATH ou, si vous préférez supprimer cet avertissement, utilisez --no-warn-script-location.

qui indique clairement où il est installé et que faire pour l'obtenir


2

Si vous utilisez Linux, ouvrez votre terminal et tapez virtualenv à mi-chemin et complétez automatiquement avec la touche de tabulation. S'il n'y a pas d'installation à exécution automatique de virtualenv sur votre système en exécutant:

mycomp$sudo apt-get install virtualenv
//if you're already super user.
mycomp#apt-get install virtualenv

Vous pouvez maintenant naviguer vers l'endroit où vous souhaitez créer votre projet et faire:

myprj$pip3 install virtualenv    
//to install python 3.5 and above  
myprj$virtualenv venv --python=python3.5  
//to activate virtualenv  
(venv)myprj$source venv/bin/activate  
(venv)myprj$deactivate

J'ai mis à niveau vers python 3.7. J'ai continué à essayer d'installer virtualenv, il retournera toujours "Erreur: Impossible de trouver une version qui satisfait à l'exigence virtualenv (à partir des versions: aucune)". J'ai lu quelque part qu'à partir d'une certaine version de python 3.x, il est livré avec virtualenv installé, mais essayer de créer un environnement virtuel simple, n'a pas fonctionné, cela retournerait une erreur qu'il ne connaît pas la commande virtualenv. Mais cela a fonctionné avec la commande suivante de votre réponse, "virtualenv venv --python = python3.7". Rien d'autre n'a été fait auparavant. Au cas où cela aiderait quelqu'un d'autre. Environnement MacOS.
CarmenA

1

cela fonctionne dans Ubuntu 18 et supérieur (non testé dans les versions précédentes):

sudo apt install python3-virtualenv

1

J'ai eu le même problème pendant longtemps. Je l'ai résolu en exécutant ces deux commandes, la première consiste à installer la seconde est d'activer l'env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Notez que j'utilise python3, vous pouvez le changer en pythoncas d' python3échec. Merci.


0

Suivez ces étapes de base pour configurer l'environnement virtuel

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

nous devons mettre à jour notre ~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Le ~/.bashrcfichier est simplement un script shell que Bash exécute chaque fois que vous lancez un nouveau terminal. Vous utilisez normalement ce fichier pour définir diverses configurations. Dans ce cas, nous définissons une variable d'environnement appeléeWORKON_HOME pour pointer vers le répertoire où vivent nos environnements virtuels Python. Nous chargeons ensuite toutes les configurations nécessaires depuis virtualenvwrapper.

Pour mettre à jour votre ~/.bashrcfichier, utilisez simplement un éditeur de texte standard, nano est probablement le plus facile à utiliser. Une solution plus simple consiste à utiliser la commande cat et à éviter complètement les éditeurs:

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Après avoir édité notre fichier ~ / .bashrc, nous devons recharger les modifications:

source ~/.bashrc

Maintenant que nous avons installé virtualenv et virtualenvwrapper, l'étape suivante consiste à créer réellement l'environnement virtuel Python - nous le faisons à l'aide de la commande mkvirtualenv.

mkvirtualenv YOURENV

0

Pour moi, il a été installé dans ce chemin (python 2.7 sur MacOS): $ HOME / Library / Python / 2.7 / bin


0

Je fais le cours iOS en ligne d'Angela Yu et j'ai eu le même problème et j'ai également obtenu l'autorisation refusée erreur 13 lorsque j'essayais de courir virtualenv --python=/{myPath} {newVirtualEnvName}

Je l'ai résolu en:

  1. passage à un utilisateur sudo sudo su
  2. naviguer vers mon dossier de destination (où je veux que mon nouvel env virtuel vive) ie. / Utilisateurs / muUserName / Environnements /
  3. exécuter la commande python -m virtualenv python27python27 est le nom de mon nouvel environnement virtuel
  4. ci-dessus a créé le dossier pathon27 dans mon dossier Environnements , puis j'ai pu exécuter source python27/bin/activatepour démarrer mon virtualenv

0

La réponse simple est que si vous n'êtes pas un utilisateur sudo comme je n'en étais pas un. Vous devez ajouter le chemin de votre dossier bin ( /home/myusername/.local/bin). Donc, fondamentalement, la ligne de commande recherche dans lequel de ces chemins est la commande que vous avez tapée.

export PATH=/home/b18150/.local/bin:/usr/bin:/bin

ici, il recherchera d' local/binabord puis /usr/binpuis /bin.


-3
apt update
apt upgrade
apt install ufw python virtualenv git unzip pv

3 commandes et tout fonctionne!


La question est pour mac OS, il n'y a pasapt
Matteo

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.