根据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__
属性与此有关。
您收到的错误是当python尝试查找不存在的软件包/模块时发生的。作为user2357112 mentions,data.generate_dummies.py
被视为完全指定的模块路径(不存在),并且尝试导入子模块py
(也不存在)。
如果使用.py
标志,则不使用-m
来调用文件,如下所示:
python -m data.generate_dummies