根据python文档,-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 所提到的,data.generate_dummies.py
被视为完全指定的模块路径(不存在(,并尝试导入子模块py
(也不存在(。
调用文件而不.py
,如果您使用的是-m
标志,如下所示:
python -m data.generate_dummies