Python:SystemError 父模块未加载,无法执行相对导入

2024-02-22

我知道已经有很多与此类似的问题,但不幸的是我还没有找到如何应用于我的问题。

我的项目结构如下:

Project
|___ maincode
      |___ __init__.py
      |___ losses.py
      |___ bin
           |___ __init__.py
           |___ train.py

然后在train.py我有以下代码:

# Allow relative imports when being executed as script.
if __name__ == "__main__" and __package__ is None:
    __package__ = "maincode.bin"
    sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))

    from .. import losses

def main(args=None):
    #some code here

if __name__ == '__main__':
    main()

现在如果我执行脚本train.py从项目主目录Project/,即在终端中运行以下命令:

maincode/bin/train.py

然后我得到以下错误:

系统错误:父模块“maincode.bin”未加载,无法 执行相对导入

我尝试使用 Python 2.7.6 和 Python 3.5.2 并获得相同的错误。

能否请你帮忙?先感谢您!


如果您只想运行该模块而不是整个包。做python -m maincode.bin.train它告诉 python 将其作为模块运行。

如果您想运行整个包,请将目录更改为项目:cd /path/to/project然后运行:python maincode如果你的代码设置正确,它应该运行 train.py。

否则,将脚本移出包并单独运行。

有关此内容和了解包的更多信息可以在这里找到:十亿次相对进口 https://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:SystemError 父模块未加载,无法执行相对导入 的相关文章

随机推荐