Как использовать pytest с virtualenv?

Я установил pytest в virtualenv и запускаю его из этого виртуального env, но он не использует пакеты, которые я установил в этом виртуальном env. Вместо этого он использует основные системные пакеты. (Используя "python -m unittest обнаружить", я могу запустить мои тесты с помощью правильного python и пакетов, но я хочу использовать фреймворк py.test.)

Возможно ли, что py.test фактически не запускает pytest внутри virtualenv, и я должен указать, какой pytest будет запущен?

Как заставить py.test использовать только питон и пакеты, которые находятся в моем virtualenv?

Кроме того, поскольку у меня есть несколько питонов в моей системе, как я могу определить, какой python python использует? Будет ли он автоматически использовать python внутри моего virtualenv, или мне нужно каким-то образом указать?

Ответ 1

Внутри вашей среды вы можете попробовать

python -m pytest

Ответ 2

В моем случае я был вынужден покинуть venv (деактивировать), удалить pytest (pip uninstall pytest), ввести venv (source/my/path/to/venv), а затем переустановить pytest (pip install pytest). Я не знаю точно, почему pip отказывается устанавливать pytest в venv (он говорит, что он уже присутствует).

Я надеюсь, что это поможет

Ответ 3

вам нужно активировать свой python env каждый раз, когда вы хотите запустить свой python script, у вас есть несколько способов его активировать, мы предполагаем, что ваш virtualenv установлен в /home/venv:

1- основанный на запуске python с одной командной строкой >>> /home/venv/bin/python <your python file.py>

2- добавьте эту строку в начало файла python script #! /home/venv/bin/python, а затем запустите python <you python file.py>

3- активируйте свой python env source /home/venv/bin/activate, а затем запустите вас script как python <you python file.py>

4- используйте virtualenvwrapper для управления и активируйте свои среды python