gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 22:22:04 25 4
gpt4 key购买 nike

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

我的项目结构如下:

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()

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

maincode/bin/train.py

然后我得到以下错误:

SystemError: Parent module 'maincode.bin' not loaded, cannot perform relative import

我在 Python 2.7.6 和 Python 3.5.2 上都试过了,都得到了同样的错误。

你能帮忙吗?提前致谢!

最佳答案

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

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

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

有关此内容和了解包的更多信息,请参见此处: Relative imports for the billionth time

关于Python:SystemError 父模块未加载,无法执行相对导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47878301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com