使用`python -m ...`时Main不执行

时间:2017-08-14 05:37:29

标签: python python-3.x module main

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

  

在sys.path中搜索指定模块并将其内容作为执行   __main__模块。

当我使用python命令运行我的脚本时,一切正常。由于我现在想从更高级别导入某些内容,因此我必须使用python -m运行该脚本。但是__name__ == "__main__"语句似乎返回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__属性与此有什么关系。

1 个答案:

答案 0 :(得分:4)

当python尝试查找不存在的包/模块时,会出现错误。作为user2357112 mentionsdata.generate_dummies.py被视为完全指定的模块路径(不存在),并尝试导入子模块py(也不存在)。

如果您正在使用.py标记,则在没有-m的情况下调用您的文件,如下所示:

python -m data.generate_dummies