it-swarm.com.de

Wie verwende ich pytest mit virtualenv?

Ich habe pytest in einem virtualenv installiert und verwende es von dieser virtuellen Umgebung aus, aber es verwendet nicht die Pakete, die ich in dieser virtuellen Umgebung installiert habe. Stattdessen werden die Hauptsystempakete verwendet. (Mit "python -m unittest discover" kann ich meine Tests tatsächlich mit dem richtigen Python und den richtigen Paketen ausführen, aber ich möchte das py.test-Framework verwenden.)

Ist es möglich, dass py.test den pytest in der virtualenv tatsächlich nicht ausführt und ich muss angeben, welcher pytest ausgeführt werden soll?

Wie bekomme ich py.test, um nur den Python und die Pakete in meiner Virtualenv zu verwenden?

Wie kann ich außerdem feststellen, welcher Python-Pytest verwendet wird, da ich mehrere Pythons auf meinem System habe? Wird der Python automatisch in meiner virtuellen Umgebung verwendet, oder muss ich ihn irgendwie angeben?

19
Henry Grantham

In Ihrer Umgebung können Sie es versuchen

python -m pytest
22
Icarus

In meinem Fall musste ich das venv verlassen (deaktivieren), pytest entfernen (pip uninstall pytest), das venv eingeben (Quelle/mein/Pfad/nach/venv) und dann pytest erneut installieren (pip install pytest). Ich weiß nicht genau, warum pip sich weigert, pytest in venv zu installieren (heißt es bereits vorhanden).

Ich hoffe das hilft

3
jmcollin92

Es gibt ein bisschen Tanz, um dies zum Laufen zu bringen:

  1. aktiviere dein venv: source venv/bin/activate
  2. install pytest: pip install pytest
  3. aktiviere dein venv erneut: deactivate && source venv/bin/activate

Der Grund ist, dass der Pfad zu pytest durch die source-Einstellung der activate-Datei erst festgelegt wird, nachdem pytest tatsächlich in der venv installiert ist. Sie können den Pfad vor der Installation nicht auf etwas festlegen.

Re -activateing ist für alle in Ihrer virtuellen Umgebung installierten Konsoleneinstiegspunkte erforderlich.

0
7yl4r

sie müssen Ihr Python-Env jedes Mal aktivieren, wenn Sie Ihr Python-Skript ausführen möchten. Sie haben mehrere Möglichkeiten, es zu aktivieren. Wir setzen voraus, dass Ihre Virtualenv unter/home/venv installiert ist:

1- Die Basis ist, den Python mit einer Befehlszeile auszuführen >>> /home/venv/bin/python <your python file.py>

2- Fügen Sie diese Zeile oben in die Python-Skriptdatei #! /home/venv/bin/python ein und führen Sie dann python <you python file.py> aus.

3- Aktivieren Sie Ihre Python-Umgebung source /home/venv/bin/activate und führen Sie dann das Skript wie python <you python file.py> aus.

4- Verwenden Sie virtualenvwrapper , um Ihre Python-Umgebungen zu verwalten und zu aktivieren 

0