web-dev-qa-db-fra.com

bash: mkvirtualenv: commande non trouvée

Après avoir suivi les instructions du virtualenvwrapper post de Doug Hellman , je ne pouvais toujours pas lancer un environnement de test.

[mpenning@tsunami ~]$ mkvirtualenv test
-bash: mkvirtualenv: command not found
[mpenning@tsunami ~]$

Il est à noter que j'utilise WORKON_HOME qui ne figure pas dans mon $HOME. J'ai essayé de rechercher /usr/local/bin/virtualenvwrapper.sh comme indiqué dans la documentation d'installation de virtualenvwrapper , mais cela n'existe pas.

J'utilise CentOS 6 et 2.6.6 python, si cela compte.


# File: ~/.bash_profile
# ...

export WORKON_HOME="/opt/virtual_env/"
source "/opt/virtual_env/bin/virtualenvwrapper_bashrc"
81
Mike Pennington

Solution 1 :

Pour une raison quelconque, virtualenvwrapper.sh installé dans /usr/bin/virtualenvwrapper.sh, au lieu d'être sous /usr/local/bin.

Ce qui suit dans mon .bash_profile fonctionne ...

source "/usr/bin/virtualenvwrapper.sh"
export WORKON_HOME="/opt/virtual_env/"

Mon installation semble fonctionner correctement sans sourçage virtualenvwrapper_bashrc

Solution 2 :

Alternativement, comme mentionné ci-dessous, vous pouvez exploiter le risque que virtualenvwrapper.sh soit déjà dans la variable PATH de votre shell et émettre simplement un source `which virtualenvwrapper.sh`

85
Mike Pennington

Essayer:

source `which virtualenvwrapper.sh`

Les backticks sont des substitutions de commandes - ils prennent ce que le programme affiche et le mettent dans l'expression. Dans ce cas, "which" vérifie le chemin $ PATH pour trouver virtualenvwrapper.sh et en génère le chemin. Le script est ensuite lu par le shell via "source".

Si vous souhaitez que cela se produise à chaque fois que vous redémarrez votre Shell, il est probablement préférable de commencer par saisir le résultat de la commande "which", puis de placer la ligne "source" dans votre Shell, comme suit:

echo "source /path/to/virtualenvwrapper.sh" >> ~/.profile

^ Cela peut différer légèrement en fonction de votre shell. Veillez également à ne pas utiliser le seul> car cela tronquerait votre ~/.profile: -o

42
Erich

J'ai eu le même problème sous OS X 10.9.1 avec Python 2.7.5. Aucun problème avec WORKON_HOME pour moi, mais je devais ajouter manuellement source "/usr/local/bin/virtualenvwrapper.sh" à ~/.bash_profile (ou ~/.bashrc sous unix) après avoir exécuté pip install virtualenvwrapper.

37
Nick Benes

Prérequis pour exécuter cette commande -

1) pip (acronyme récursif de P ip I nstaller P ython) est un système de gestion de paquets utilisé pour installer et gérer des progiciels écrits en Python. De nombreux packages peuvent être trouvés dans l'index des packages Python (PyPI).

Sudo apt-get install python-pip

2) Installez l'environnement virtuel. Utilisé pour créer un environnement virtuel, pour installer des packages et des dépendances de plusieurs projets isolés les uns des autres.

Sudo pip install virtualenv

3) Installer l’enveloppe d’environnement virtuel A propos de l’enveloppe d’env virtuel

Sudo pip install virtualenvwrapper

Après avoir installé les conditions préalables, vous devez activer le wrapper d'environnement virtuel pour créer un environnement virtuel. Voici les étapes -

1) définir le répertoire de l’environnement virtuel dans la variable de chemin -export WORKON_HOME=(directory you need to save envs)

2) source /usr/local/bin/virtualenvwrapper.sh -p $WORKON_HOME

Comme mentionné par @Mike, le code source `que virtualenvwrapper.sh` ou which virtualenvwrapper.sh peut utiliser pour localiser le fichier virtualenvwrapper.sh.

Il est préférable de mettre plus de deux lignes dans ~/.bashrc pour éviter d’exécuter les commandes ci-dessus à chaque fois que vous ouvrez un nouveau shell. C'est tout ce dont vous avez besoin pour créer un environnement en utilisant mkvirtualenv

Points à garder à l'esprit -

  • Sous Ubuntu, vous devrez peut-être installer virtualenv et virtualenvwrapper en tant que root. Préfixez simplement la commande ci-dessus avec Sudo.
  • Selon le processus utilisé pour installer virtualenv, le chemin d'accès à virtualenvwrapper.sh peut varier. Recherchez le chemin approprié en exécutant $ find/usr -name virtualenvwrapper.sh. Ajustez la ligne dans votre script .bash_profile ou .bashrc en conséquence.
17
Keshav

Depuis que je viens de traverser, je vais essayer d’écrire la réponse que j’aurais souhaitée deux heures plus tôt. Ceci est destiné aux personnes qui ne veulent pas seulement de la solution copier-coller

First: Vous vous demandez pourquoi copier et coller des chemins fonctionne pour certaines personnes alors que cela ne fonctionne pas pour d'autres? ** Les solutions diffèrent principalement par les différentes versions de Python, 2.x ou 3.x. Il existe actuellement des versions distinctes de virtualenv et de virtualenvwrapper qui fonctionnent avec python 2 ou 3. Si vous êtes sur Python 2, installez-le comme suit: 

Sudo pip install virutalenv
Sudo pip install virtualenvwrapper

Si vous envisagez d’utiliser Python 3, installez les versions correspondantes de Python 3.

Sudo pip3 install virtualenv
Sudo pip3 install virtualenvwrapper

Vous avez correctement installé les packages pour votre version de python et vous êtes tous prêts, n'est-ce pas? Bien, essayez-le. Tapez workon dans votre terminal. Votre terminal ne pourra pas trouver la commande (workon est une commande de virtualenvwrapper). Bien sûr que non. Workon est un exécutable qui ne sera disponible que lorsque vous aurez chargé/créé le fichier virtualenvwrapper.sh. Mais l’officiel guide d’installation l’avez-vous couvert, non? Ouvrez simplement votre fichier .bash_profile et insérez ce qui suit, il est indiqué dans la documentation: 

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

En particulier, la commande source /usr/local/bin/virtualenvwrapper.sh semble utile car elle semble charger/source le fichier souhaité virtualenvwrapper.sh qui contient toutes les commandes que vous souhaitez utiliser, telles que workon et mkvirtualenv. Mais oui, non. Lorsque vous suivez le guide d'installation officiel, il est très probable que vous receviez l'erreur du message initial: mkvirtualenv: command not found. Aucune commande n'est encore trouvée et vous êtes toujours frustré. Alors quel est le problème ici? Le problème est que virtualenvwrapper.sh n’est pas celui que vous recherchez actuellement. Rappel bref ... vous regardez ici: 

source /usr/local/bin/virtualenvwrapper.sh

Mais il existe un moyen assez simple de trouver le fichier souhaité. Il suffit de taper 

which virtualenvwrapper

à votre terminal. Ceci recherchera le fichier dans votre CHEMIN , car il est fort probable qu'il se trouve dans un dossier inclus dans le chemin PATH de votre système.

Si votre système est très exotique, le fichier souhaité sera caché en dehors d'un dossier PATH. Dans ce cas, vous pouvez trouver le chemin d'accès à virtalenvwrapper.sh à l'aide de la commande Shell find / -name virtualenvwrapper.sh.

Votre résultat peut ressembler à quelque chose comme ceci: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh Félicitations. You have found your missing file!. Maintenant, tout ce que vous avez à faire est de changer une commande dans votre profil .bash. Il suffit de changer: 

source "/usr/local/bin/virtualenvwrapper.sh"

à: 

"/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh"

Toutes nos félicitations. Virtualenvwrapper fonctionne maintenant sur votre système. Mais vous pouvez faire encore une chose pour améliorer votre solution. Si vous avez trouvé le fichier virtualenvwrapper.sh avec la commande which virtualenvwrapper.sh, vous savez qu'il se trouve dans un dossier du chemin PATH. Donc, si vous écrivez simplement le nom du fichier, votre système de fichiers supposera que le fichier se trouve dans un dossier PATH. Donc, vous n'avez pas à écrire le chemin complet. Il suffit de taper:

source "virtualenvwrapper.sh"

C'est tout. Vous n'êtes plus frustré. Vous avez résolu votre problème. J'espère.

2
Xen_mar

Sous Windows 7 et Git Bash, cela m'aide à:

  1. Créez un fichier ~/.bashrc (sous votre dossier de départ utilisateur)
  2. Ajouter une ligne exporter WORKON_HOME = $ HOME/.virtualenvs (vous devez créer ce dossier s'il n'existe pas)
  3. Ajouter la ligne source "C:\Program Files (X86)\Python36-32\Scripts\virtualenvwrapper.sh" (chemin d'accès pour Votre virtualenvwrapper.sh)

Redémarrez votre commande git bash et mkvirtualenv fonctionnera désormais correctement.

1
Eugene Zalivadnyi

En utilisant Git Bash sous Windows 10 et Python36 pour Windows, j’ai trouvé le fichier virtualenvwrapper.sh à un endroit légèrement différent et l’exécution de ce problème a résolu le problème.

source virtualenvwrapper.sh 
/c/users/[myUserName]/AppData/Local/Programs/Python36/Scripts
1
leastgrebe

Sur Windows 10, pour créer l’environnement virtuel, je remplace "pip mkvirtualenv mon projet" par "mkvirtualenv mon projet" et cela fonctionne bien.

0
Ayoub_DATA

Résolution du problème sous Ubuntu 14.04 OS avec Python 2.7.6, en ajoutant ci-dessous deux lignes dans les fichiers ~/.bash_profile (ou ~/.bashrc sous unix).

source "/usr/local/bin/virtualenvwrapper.sh"

export WORKON_HOME = "/ opt/virtual_env /"

Et puis en exécutant ces deux lignes sur le terminal.

0
Mants

Utilisez cette procédure pour créer un env virtuel dans ubuntu

étape 1 Installer le pip

   Sudo apt-get install python-pip

étape 2 Installez virtualenv

   Sudo pip install virtualenv

étape 3 Créez un répertoire pour stocker vos virtualenvs (j'utilise ~/.virtualenvs) 

   mkdir ~/.virtualenvs

ou utilisateur cette commande pour installer une version spécifique de python dans env

virtualenv -p /usr/bin/python3.6 venv

setp 4

   Sudo pip install virtualenvwrapper

étape 5

   Sudo nano ~/.bashrc

étape 6 Ajoutez ces deux lignes de code à la fin du fichier bashrc

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

étape 7 ouvrir un nouveau terminal (recommandé)

étape 8 Créer un nouveau virtualenv

  mkvirtualenv myawesomeproject

étape 9 Pour charger ou basculer entre virtualenvs, utilisez la commande workon:

  workon myawesomeproject

étape 10 pour quitter votre nouveau virtualenv, utilisez 

 deactivate

et faire en utilisant pip vs pip3 

0
Hemanth SP