【问题标题】:python -m: Error while finding module specificationpython -m:查找模块规范时出错
【发布时间】:2018-01-21 21:46:33
【问题描述】:

根据 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__ 属性与此有什么关系。

【问题讨论】:

  • 请告诉我们您使用的确切命令是什么。当使用-m 运行时,不要使用.py 调用文件。
  • 谢谢!这已经解决了我的问题。但是错误信息是什么意思?
  • 它正在寻找一个名为 py 的子模块,但 data.generate_dummies 不是一个包。

标签: python python-3.x module main


【解决方案1】:

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

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

python -m data.generate_dummies  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-07
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2018-06-10
    • 2022-01-16
    相关资源
    最近更新 更多