python -m:查找模块规范时出错

python -m: Error while finding module specification

根据 python 文档,-m 标志应执行以下操作:

Search sys.path for the named module and execute its contents as the __main__ module.

当我 运行 我的脚本仅使用 python 命令时,一切正常。因为我现在想从更高级别导入一些东西,所以我必须 运行 带有 python -m 的脚本。但是 __name__ == "__main__" 语句似乎 return False 并产生以下错误:

/home/<name>/anaconda3/bin/python: Error while finding module specification for 'data.generate_dummies.py' (AttributeError: module 'data.generate_dummies' has no attribute '__path__')

我不明白 __path__ 属性与此有什么关系。

当 python 试图寻找不存在的 package/module 时,会出现您遇到的错误。由于 data.generate_dummies.py 被视为完全指定的模块路径(不存在),并且尝试导入子模块 py(也不存在)。

如果您使用的是 -m 标志,请在不使用 .py 的情况下调用您的文件,如下所示:

python -m data.generate_dummies