Pytest говорит «ModuleNotFoundError» при использовании токса - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть следующая структура проекта:

root
|- module
  |- module.py
  |- __init__.py
|- tests
   |- unit
      |- some_test.py
   |- integration
      |- another_test.py
|- conftest.py
|- setup.py
|- tox.ini

Когда я запускаю python3 module/module.py ..., он работает как положено.

Однако, когда я выполняю tox, я получаю ModuleNotFoundError: No module named 'dateutil'.

В моем файле setup.py у меня есть install_requires=['python-dateutil'], а tox.ini имеет следующее (упрощенное) содержимое:

[tox]
envlist   = py{36, 37}
skipsdist = True

[testenv]
deps = pytest
commands = pytest

Кто-нибудь знает, почему запуск tox дает мне сообщение о том, что модуль dateutil не может быть найден и как его исправить?

1 Ответ

0 голосов
/ 05 февраля 2019

[tox]skipsdist = True запрещает запуск tox python setup.py sdist, поэтому ваш install_requires полностью игнорируется.

Если вы действительно хотите последовать совету, установите [tox]skipsdist = True дляПриложения, также рекомендуется следовать всем другим рекомендациям для упаковочных приложений: используйте requirements.txt и добавьте

[testenv]
deps =
    -rrequirements.txt

к tox.ini.Или просто напрямую

[testenv]
deps = python-dateutil
...