`python -m pytest` vs pytest in virtualenv?



在我的旧虚拟环境中,我能够直接执行pytest tests/unit/

然后不知何故我搞砸了我的环境,不得不删除并重新安装我的.venv

然后在我激活新.venv并重新安装所有软件包后,我尝试pytest tests/unit/但它给出了此错误:

(.venv) john@MacBook-Pro:~/myproject$ pytest tests/unit/nti/ -p no:warnings 
-bash: /usr/local/bin/pytest: /usr/local/opt/python/bin/python3.6: bad interpreter: No such file or directory

经过一些痛苦的试验,我发现我可以运行测试:

(.venv) john@MacBook-Pro:~/myproject$ python -m pytest tests/unit/nti/ -p no:warnings

那么,python -m pytestpytest有什么区别?为什么pytest工作失败,但python -m pytest没事?

一种可能的选择是你的"tests"目录里面没有__init__.py,所以你必须显式调用pytest模块(python -m pytest(。对我来说,这在Debian 10,Python 3.7.3虚拟环境和pytest 6.2.3上有所不同。

最新更新