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
Ответы
Ответ 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
- Теперь, используя этот virtualenv, попробуйте запустить ваши тесты.
Ответ 3
Это сработало для меня:
python3 $(which py.test) ...
Ответ 4
В дополнение к вышеупомянутому python3 -m pytest
это может также работать:
env pytest