Подтвердить что ты не робот

Pytest и Python 3

Я установил pytest 2.3.4 под Debian Linux. По умолчанию он работает под Python 2.7, но иногда я хотел бы запустить его под Python 3.x, который также установлен. Кажется, я не могу найти инструкции о том, как это сделать.

Классификаторы PyPI Trove показывают Python:: 3, поэтому, возможно, это должно быть возможно. Помимо py.test somedir/sometest.py, я могу использовать python -m pytest ... или даже python2.7 -m pytest ..., но если я попробую python3 -m pytest ..., я получу

/usr/bin/python3: No module named pytest

4b9b3361

Ответ 1

Я нашел обходное решение:

  • Установлен python3-pip с помощью aptitude, который создал /usr/bin/pip-3.2.
  • Далее pip-3.2 install pytest, который повторно установил pytest, но по пути python3.2.
  • Тогда я смог использовать python3 -m pytest somedir/sometest.py.

Не так удобно, как запуск py.test, но работоспособный.

Ответ 2

В python3 не установлен модуль py.test. Если вы можете, установите пакет python3-pytest.

Если вы не можете этого сделать, попробуйте это:

  • Установить virtualenv
  • Создайте virtualenv для python3
    • virtualenv --python=python3 env_name
  • Активировать virtualenv
    • source ./env_name/bin/activate
  • Установить py.test
    • pip install py.test
  • Теперь, используя этот virtualenv, попробуйте запустить ваши тесты.

Ответ 3

Это сработало для меня:

python3 $(which py.test) ...

Ответ 4

В дополнение к вышеупомянутому python3 -m pytest это может также работать:

env pytest