pytest——pycharm中右击运行(run)没有问题,在terminal中运行pytest报错:E ModuleNotFoundError: No module named
参考了这个解决办法:https://blog.csdn.net/qq_36829091/article/details/82180866
我的是Windows,linux的和Windows的解决办法有些不一样,但也是大同小异,需要改一下环境变量
这是我的文件目录
需要在test_calc.py中导入python_math_demo里的calc,在pycharm中右击运行没有任何问题。
在terminal中运行pytest报错
如果是pycharm的错误或者是导入的错误,不可能一个能运行成功一个运行错误。所以我猜是pycharm的IDE的运行机制和terminal的运行机制不一样才导致这种情况
参考资料所得:https://blog.csdn.net/qq_36829091/article/details/82180866
Python在启动解释器(Interpreter)时不仅会导入环境变量中sys.path
发现的模块,还会导入当前工作目录下的模块。
具体什么事sys.path和当前工作模块,可参考上面的链接。
通过在文件头加上输出环境变量,然后再terminal中运行pytest。运行结果的第一个路径就是当前路径
解决办法:
第一种方法:是在环境变量中加入当前模块路径。(但由于我不喜欢在环境变量中加很多东西,所以就省略了这步)
第二种方法:以下两个命令其中一个就可,都表示我的当前工作目录。
这样就OK了
如何知道自己的当前工作目录呢,就是你pycharm的虚拟环境目录的名称