Hoe gebruik ik pytest met virtualenv?

Ik heb pytestin 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 discoverkan 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:

  1. activeer uw venv : source venv/bin/activate
  2. install pytest : pip install pytest
  3. heractiveer uw venv: deactivate && source venv/bin/activate

De reden is dat het pad naar pytestwordt ingesteld door de sourcedie het bestand activatepas na pytestis daadwerkelijk geïnstalleerd in de venv. Je kunt het pad naar iets niet instellen voordat het is geïnstalleerd.

Heractivateing 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/pythonen voer vervolgens python <you python file.py>

uit

3- activeer uw python env source /home/venv/bin/activateen voer vervolgens uw script uit zoals python <you python file.py>

4- gebruik virtualenvwrapperom uw python-omgevingen te beheren en te activeren

Other episodes