Je voudrais simplement éviter l'utilisation de virtualenv
Python3.3 + et utiliser à la place la bibliothèque standard livrée venv
. Pour créer un nouvel environnement virtuel, vous devez taper:
$ python3 -m venv <MYVENV>
virtualenv
essaie de copier le binaire Python dans le répertoire bin de l'environnement virtuel. Cependant, il ne met pas à jour les liens de fichiers de bibliothèque incorporés dans ce binaire, donc si vous construisez Python à partir de la source dans un répertoire non système avec des noms de chemin relatifs, le binaire Python se casse. Puisque c'est ainsi que vous faites une copie Python distribuable, c'est un gros défaut. BTW pour inspecter les liens de fichiers de bibliothèque intégrés sur OS X, utilisez otool
. Par exemple, depuis votre environnement virtuel, tapez:
$ otool -L bin/python
python:
@executable_path/../Python (compatibility version 3.4.0, current version 3.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
Par conséquent, j'éviterais virtualenvwrapper
et pipenv
. pyvenv
est obsolète. pyenv
semble être utilisé souvent là où il virtualenv
est utilisé mais je resterais loin de lui aussi car je pense qu'il fait venv
aussi ce pyenv
pour quoi il est conçu.
venv
crée des environnements virtuels dans le shell qui sont frais et en bac à sable , avec des bibliothèques installables par l' utilisateur , et il est multi-python sûr . Frais car les environnements virtuels ne commencent qu'avec les bibliothèques standard livrées avec python, vous devez réinstaller toutes les autres bibliothèques pendant pip install
que l'environnement virtuel est actif. Sandboxé car aucune de ces nouvelles installations de bibliothèque n'est visible en dehors de l'environnement virtuel, vous pouvez donc supprimer tout l'environnement et recommencer sans vous soucier de l'impact sur votre installation de base de python. Bibliothèques installables par l'utilisateur car le dossier cible de l'environnement virtuel est créé sanssudo
dans un répertoire que vous possédez déjà, vous n'aurez donc pas besoin d' sudo
autorisations pour y installer des bibliothèques. Enfin, il est multi-python sûr , car lorsque les environnements virtuels s'activent, le shell ne voit que la version python (3.4, 3.5 etc.) qui a été utilisée pour construire cet environnement virtuel.
pyenv
est similaire venv
en ce qu'il vous permet de gérer plusieurs environnements python. Cependant, pyenv
vous ne pouvez pas facilement restaurer les installations de bibliothèque à un état de démarrage et vous aurez probablement besoin de admin
privilèges à un moment donné pour mettre à jour les bibliothèques. Je pense donc qu'il est également préférable d'utiliser venv
.
Au cours des deux dernières années, j'ai trouvé de nombreux problèmes dans les systèmes de construction (packages emacs, constructeurs d'applications autonomes python, installateurs ...) qui finissent par poser des problèmes avec virtualenv
. Je pense que python sera une meilleure plate-forme lorsque nous éliminerons cette option supplémentaire et n'utiliserons que venv
.