How do I use pytest with virtualenv?

Henry Grantham picture Henry Grantham · Jan 27, 2016 · Viewed 19.1k times · Source

I installed pytest into a virtual environment (using virtualenv) and am running it from that virtual environment, but it is not using the packages that I installed in that virtual environment. Instead, it is using the main system packages. (Using python -m unittest discover, I can actually run my tests with the right python and packages, but I want to use the py.test framework.)

Is it possible that py.test is actually not running the pytest inside the virtual environment and I have to specify which pytest to run?

How to I get py.test to use only the python and packages that are in my virtualenv?

Also, since I have several version of Python on my system, how do I tell which Python that Pytest is using? Will it automatically use the Python within my virtual environment, or do I have to specify somehow?

Answer

Icarus picture Icarus · Feb 1, 2017

Inside your environment, you may try

python -m pytest