我具有以下项目结构:
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'以及如何解决该问题有任何见解?
[[tox]skipsdist = True
preventstox
运行python setup.py sdist
,因此您的install_requires
被完全忽略。
如果您真的想按照建议为应用程序设置[tox]skipsdist = True
,还建议您遵循所有其他打包应用程序的最佳实践:使用requirements.txt
并添加
[testenv]
deps =
-rrequirements.txt
至tox.ini
。或直接直接
[testenv]
deps = python-dateutil
什么帮助了我:
install_requires
的setup.py
部分中>.tox
目录并重新运行tox