Search code examples
pythonpython-3.xpippytestpytest-cov

Cannot install pytest from requirements.txt


I am using pip3 to install modules for my python project. My requirements.txt looks like this:

urllib3==1.22
cx_freeze==6.0b1
pytest==3.2.2
pytest-cov==2.5.1
pytest-dependency==0.2

I clearly have pytest added to my requirements but when I run pip3 install -r requirements.txt it cannot find pytest and shows the following exception:

Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-y300zryw/pytest-dependency/setup.py", line 9, in <module>
    import pytest_dependency
  File "/tmp/pip-build-y300zryw/pytest-dependency/pytest_dependency.py", line 8, in <module>
    import pytest
ModuleNotFoundError: No module named 'pytest'

When I manually do a pip3 install pytest and then run my requirements file, it works fine.

Why does pytest not install from requirements.txt?


Solution

  • for your version of pytest-cov need pytest==3.4.2 so simple edit the requirements.txt to

    urllib3==1.22
    cx_freeze==6.0b1
    pytest==3.4.2
    pytest-cov==2.5.1
    pytest-dependency==0.2
    

    first time it help me, but now it work even for 3.2.2

    $ workon ptest

    (ptest) $ python -V
    Python 3.5.3
    

    look on installed

    (ptest) $ pip freeze
    attrs==17.4.0
    coverage==4.5.1
    pluggy==0.6.0
    py==1.5.2
    six==1.11.0
    

    install

    (ptest) $ cat requirements.txt 
    urllib3==1.22
    cx_freeze==6.0b1
    pytest==3.2.2
    pytest-cov==2.5.1
    pytest-dependency==0.2
    
    (ptest) $ pip install -r requirements.txt 
    Collecting urllib3==1.22 (from -r requirements.txt (line 1))
      Using cached urllib3-1.22-py2.py3-none-any.whl
    Collecting cx_freeze==6.0b1 (from -r requirements.txt (line 2))
    Collecting pytest==3.2.2 (from -r requirements.txt (line 3))
      Using cached pytest-3.2.2-py2.py3-none-any.whl
    Collecting pytest-cov==2.5.1 (from -r requirements.txt (line 4))
      Using cached pytest_cov-2.5.1-py2.py3-none-any.whl
    Collecting pytest-dependency==0.2 (from -r requirements.txt (line 5))
    Requirement already satisfied: setuptools in /home/user/.virtualenvs/ptest/lib/python3.5/site-packages (from pytest==3.2.2->-r requirements.txt (line 3))
    Requirement already satisfied: py>=1.4.33 in /home/user/.virtualenvs/ptest/lib/python3.5/site-packages (from pytest==3.2.2->-r requirements.txt (line 3))
    Requirement already satisfied: coverage>=3.7.1 in /home/user/.virtualenvs/ptest/lib/python3.5/site-packages (from pytest-cov==2.5.1->-r requirements.txt (line 4))
    Installing collected packages: urllib3, cx-freeze, pytest, pytest-cov, pytest-dependency
    Successfully installed cx-freeze-6.0b1 pytest-3.2.2 pytest-cov-2.5.1 pytest-dependency-0.2 urllib3-1.22
    

    check it

    (ptest) $ pip freeze
    attrs==17.4.0
    coverage==4.5.1
    cx-Freeze==6.0b1
    pluggy==0.6.0
    py==1.5.2
    pytest==3.2.2
    pytest-cov==2.5.1
    pytest-dependency==0.2
    six==1.11.0
    urllib3==1.2