根据 python 文档-m
标志应该执行以下操作:
在 sys.path 中搜索指定模块并执行其内容__main__
module.
当我简单地运行我的脚本时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 尝试查找不存在的包/模块时,会出现错误。作为用户2357112提到 https://stackoverflow.com/questions/45667997/main-not-executed-when-using-python-m?noredirect=1#comment78293584_45667997, data.generate_dummies.py
被视为完全指定的模块路径(不存在),并尝试导入子模块py
(这也是不存在的)。
调用您的文件而不需要.py
,如果您正在使用-m
标志,像这样:
python -m data.generate_dummies
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)