Ik heb pytest
in een virtuele omgeving geïnstalleerd (met behulp van virtualenv
) en voer het uit vanuit die virtuele omgeving, maar het gebruikt niet de pakketten die ik in die virtuele omgeving heb geïnstalleerd omgeving. In plaats daarvan gebruikt het de belangrijkste systeempakketten. (Met python -m unittest discover
kan ik mijn tests daadwerkelijk uitvoeren met de juiste python en pakketten, maar ik wil het py.test-framework gebruiken.)
Is het mogelijk dat py.test de pytest niet in de virtuele omgeving uitvoert en dat ik moet specificeren welke pytest moet worden uitgevoerd?
Hoe zorg ik ervoor dat py.test alleen de python en pakketten gebruikt die in mijn virtualenv staan?
En aangezien ik verschillende versies van Python op mijn systeem heb, hoe weet ik welke Python Pytest gebruikt? Zal het automatisch de Python gebruiken in mijn virtuele omgeving, of moet ik dat op de een of andere manier specificeren?
Antwoord 1, autoriteit 100%
Er is een kleine dans nodig om dit te laten werken:
- activeer uw venv :
source venv/bin/activate
- install pytest :
pip install pytest
- heractiveer uw venv:
deactivate && source venv/bin/activate
De reden is dat het pad naar pytest
wordt ingesteld door de source
die het bestand activate
pas na pytest
is daadwerkelijk geïnstalleerd in de venv
. Je kunt het pad naar iets niet instellen voordat het is geïnstalleerd.
Heractivate
ing is vereist voor alle console-ingangspunten die in uw virtuele omgeving zijn geïnstalleerd.
Antwoord 2, autoriteit 85%
In uw omgeving kunt u proberen
python -m pytest
Antwoord 3, autoriteit 4%
In mijn geval was ik verplicht om de venv te verlaten (deactiveren), pytest te verwijderen (pip uninstall pytest), de venv in te voeren (bron /my/path/to/venv) en vervolgens pytest opnieuw te installeren (pip install pytest). Ik weet niet precies waarom pip weigert pytest in venv te installeren (er staat dat het al aanwezig is).
Ik hoop dat dit helpt
Antwoord 4
je moet je python-env elke keer activeren als je je python-script wilt uitvoeren, je hebt verschillende manieren om het te activeren, we nemen aan dat je virtualenv is geïnstalleerd onder /home/venv :
1- de gebaseerde is om de python uit te voeren met één opdrachtregel
>>> /home/venv/bin/python <your python file.py>
2- voeg deze regel toe bovenaan het Python-scriptbestand
#! /home/venv/bin/python
en voer vervolgens python <you python file.py>
uit
3- activeer uw python env source /home/venv/bin/activate
en voer vervolgens uw script uit zoals python <you python file.py>
4- gebruik virtualenvwrapperom uw python-omgevingen te beheren en te activeren