Puisque je viens de passer un coup de frein, je vais essayer d'écrire la réponse que j'aurais souhaité avoir il y a deux heures. C'est pour les personnes qui ne veulent pas seulement la solution du copier-coller.
D'abord : Vous vous demandez pourquoi le copier/coller de chemins d'accès fonctionne pour certaines personnes alors qu'il ne fonctionne pas pour d'autres ? ** La raison principale, les solutions diffèrent selon les versions de python, 2.x ou 3.x. Il existe en fait des versions distinctes de virtualenv et virtualenvwrapper qui fonctionnent avec python 2 ou 3. Si vous êtes sous python 2, installez-les 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 installé avec succès les paquets pour votre version de python et tout est prêt, n'est-ce pas ? Eh bien, essayez. Type workon
dans votre terminal. Votre terminal ne sera pas en mesure de trouver la commande ( workon
est une commande de virtualenvwrapper). Bien sûr, il ne le fera pas. Workon
est un exécutable qui ne sera disponible que lorsque vous aurez chargé/source le fichier virtualenvwrapper.sh
. Mais l'officiel guide d'installation vous a couvert sur ce point, n'est-ce pas ? Ouvrez simplement votre fichier .bash_profile et insérez ce qui suit, comme le dit 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 puisque la commande semble charger/source le fichier désiré virtualenvwrapper.sh
qui contient toutes les commandes avec lesquelles vous voulez travailler comme workon
y 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
. Vous ne trouvez toujours pas de commande et vous êtes toujours frustré. Quel est donc le problème ? Le problème est que virtualenvwrapper.sh n'est pas là où vous le cherchez en ce moment. Petit rappel ... vous le cherchez 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. Cela va chercher dans votre PATH pour le fichier, car il est très probable qu'il se trouve dans un dossier inclus dans le PATH de votre système.
Si votre système est très exotique, le fichier souhaité se cachera en dehors d'un dossier PATH. Dans ce cas, vous pouvez trouver le chemin vers virtalenvwrapper.sh
avec la commande shell find / -name virtualenvwrapper.sh
Votre résultat peut ressembler à 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 .bash_profile. Il suffit de changer :
source "/usr/local/bin/virtualenvwrapper.sh"
à :
"/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh"
Félicitations. Virtualenvwrapper fonctionne maintenant sur votre système. Mais vous pouvez faire une chose de plus 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 à l'intérieur d'un dossier du 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. Vous n'avez donc pas besoin d'écrire le chemin complet. Tapez simplement :
source "virtualenvwrapper.sh"
C'est ça. Vous n'êtes plus frustré. Vous avez résolu votre problème. Espérons-le.