无法从 requirements.txt 安装 pytest
Cannot install pytest from requirements.txt
我正在使用 pip3
为我的 python 项目安装模块。我的 requirements.txt
看起来像这样:
urllib3==1.22
cx_freeze==6.0b1
pytest==3.2.2
pytest-cov==2.5.1
pytest-dependency==0.2
我显然已将 pytest
添加到我的要求中,但是当我 运行 pip3 install -r requirements.txt
它找不到 pytest
并显示以下异常:
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'
当我手动执行 pip3 install pytest
然后 运行 我的需求文件时,它工作正常。
为什么 pytest 不从 requirements.txt
安装?
您的 pytest-cov
版本需要 pytest==3.4.2
如此简单地将 requirements.txt
编辑为
urllib3==1.22
cx_freeze==6.0b1
pytest==3.4.2
pytest-cov==2.5.1
pytest-dependency==0.2
第一次它帮助我,但现在它甚至适用于 3.2.2
$ workon ptest
(ptest) $ python -V
Python 3.5.3
查看已安装
(ptest) $ pip freeze
attrs==17.4.0
coverage==4.5.1
pluggy==0.6.0
py==1.5.2
six==1.11.0
安装
(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
检查一下
(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
问题出在您的 pytest-dependency
版本上 - 0.2 太旧了。您无法通过 pytest
:
一次性安装 pytest-dependency==0.2
$ pip install pytest-dependency==0.2 pytest
会失败。
不过,此问题已在 0.3 版本中修复,参见 issue #13 and issue #14 已关闭。所以只需将 pytest-dependency
升级到当前版本就可以了:
urllib3==1.22
cx_freeze==6.0b1
pytest==3.2.2
pytest-cov==2.5.1
<b>pytest-dependency==0.3.2</b>
我正在使用 pip3
为我的 python 项目安装模块。我的 requirements.txt
看起来像这样:
urllib3==1.22
cx_freeze==6.0b1
pytest==3.2.2
pytest-cov==2.5.1
pytest-dependency==0.2
我显然已将 pytest
添加到我的要求中,但是当我 运行 pip3 install -r requirements.txt
它找不到 pytest
并显示以下异常:
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'
当我手动执行 pip3 install pytest
然后 运行 我的需求文件时,它工作正常。
为什么 pytest 不从 requirements.txt
安装?
您的 pytest-cov
版本需要 pytest==3.4.2
如此简单地将 requirements.txt
编辑为
urllib3==1.22
cx_freeze==6.0b1
pytest==3.4.2
pytest-cov==2.5.1
pytest-dependency==0.2
第一次它帮助我,但现在它甚至适用于 3.2.2
$ workon ptest
(ptest) $ python -V
Python 3.5.3
查看已安装
(ptest) $ pip freeze
attrs==17.4.0
coverage==4.5.1
pluggy==0.6.0
py==1.5.2
six==1.11.0
安装
(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
检查一下
(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
问题出在您的 pytest-dependency
版本上 - 0.2 太旧了。您无法通过 pytest
:
pytest-dependency==0.2
$ pip install pytest-dependency==0.2 pytest
会失败。
不过,此问题已在 0.3 版本中修复,参见 issue #13 and issue #14 已关闭。所以只需将 pytest-dependency
升级到当前版本就可以了:
urllib3==1.22
cx_freeze==6.0b1
pytest==3.2.2
pytest-cov==2.5.1
<b>pytest-dependency==0.3.2</b>