J'ai installé pytest dans virtualenv et je l'exécute depuis cet env virtuel, mais il n'utilise pas les packages que j'ai installés dans cet env virtuel. Au lieu de cela, il utilise les packages principaux du système. (Avec "python -m unittest discover", je peux réellement exécuter mes tests avec le bon python et les bons packages, mais je souhaite utiliser le framework py.test.)
Est-il possible que py.test n'exécute pas le pytest dans virtualenv et je dois spécifier quel pytest doit être exécuté?
Comment faire pour que py.test utilise uniquement le python et les packages contenus dans mon virtualenv?
De plus, comme j'ai plusieurs pythons sur mon système, comment puis-je savoir quel python python utilise? Utilisera-t-il automatiquement le python dans mon virtualenv ou dois-je le spécifier?
Dans votre environnement, vous pouvez essayer
python -m pytest
Dans mon cas, je suis obligé de quitter le venv (désactiver), supprimer pytest (pip uninstall pytest), saisir le venv (source/mon/chemin/vers/venv), puis réinstaller pytest (pip install pytest). Je ne sais pas exactement pourquoi pip refuse d'installer pytest in venv (il est déjà présent).
J'espère que ça aide
Il y a un peu de danse pour que cela fonctionne:
source venv/bin/activate
pip install pytest
deactivate && source venv/bin/activate
La raison en est que le chemin d'accès à pytest
est défini par source
ing du fichier activate
uniquement après que pytest
est réellement installé dans venv
. Vous ne pouvez pas définir le chemin d'accès à quelque chose avant son installation.
La ré-activate
est requise pour tous les points d'entrée de la console installés dans votre environnement virtuel.
vous devez activer votre env. python chaque fois que vous voulez exécuter votre script python. Vous avez plusieurs façons de l'activer. Nous supposons que votre virtualenv est installé sous/home/venv:
1- le basé est d'exécuter le python avec une ligne de commande >>> /home/venv/bin/python <your python file.py>
2- ajoutez cette ligne en haut du fichier de script python #! /home/venv/bin/python
puis exécutez python <you python file.py>
3- activez votre env source /home/venv/bin/activate
python puis exécutez votre script comme python <you python file.py>
4- utilisez virtualenvwrapper manager et activez vos environnements python