python -m方式运行,简而言之按照模块方式运行。有的开源软件import的方式会使用如下这样(相对路径import):
from .commands import create_argument_parser
from .utils.configuration import load_configuration
执行时就会出现这样的问题,原因是找不到包目录(抽象且无法解决),但如果通俗易懂方法解释应该是“只要采用相对路径import的代码请按照模块化运行”:
ImportError: attempted relative import with no known parent package
当然把所有的import相对路径转变成绝对路径,也是一种解决方法,但是很麻烦,容易引入别的麻烦。所以这样设置就可以了:
设置Working directory的时候,要注意是运行模块的上级目录,最后增加content roots和source roots就可以了。